135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes/*
235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * Copyright (C) 2015 The Android Open Source Project
335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes *
435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * Licensed under the Apache License, Version 2.0 (the "License");
535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * you may not use this file except in compliance with the License.
635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * You may obtain a copy of the License at
735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes *
835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes *      http://www.apache.org/licenses/LICENSE-2.0
935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes *
1035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * Unless required by applicable law or agreed to in writing, software
1135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * distributed under the License is distributed on an "AS IS" BASIS,
1235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * See the License for the specific language governing permissions and
1435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * limitations under the License.
1535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes */
1635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
1735ca04feb36f74e5369a62114e33996cd4a62575Chris Banespackage com.example.android.supportv7.app;
1835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
1935ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport com.example.android.supportv7.R;
2035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
2135ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.graphics.drawable.Drawable;
2235ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.os.Bundle;
2335ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.support.v4.view.MenuItemCompat;
2435ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.support.v7.app.AppCompatActivity;
2535ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.support.v7.view.ActionMode;
2635ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.support.v7.widget.SearchView;
2735ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.text.TextUtils;
2835ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.Menu;
2935ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.MenuInflater;
3035ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.MenuItem;
3135ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.View;
3235ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.widget.TextView;
3335ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.widget.Toast;
3435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
3535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes/**
3635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * This demonstrates idiomatic usage of an action mode.
3735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes */
3835ca04feb36f74e5369a62114e33996cd4a62575Chris Banespublic class ActionBarActionMode extends AppCompatActivity {
3935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
4035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes    @Override
4135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes    protected void onCreate(Bundle savedInstanceState) {
4235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes        super.onCreate(savedInstanceState);
4335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes        setContentView(R.layout.action_bar_action_mode);
4435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
4535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes        findViewById(R.id.btn_start_action_mode).setOnClickListener(new View.OnClickListener() {
4635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            @Override
4735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            public void onClick(View view) {
4835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                startActionMode();
4935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            }
5035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes        });
5135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes    }
5235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
5335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes    private void startActionMode() {
5435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes        startSupportActionMode(new ActionMode.Callback() {
5535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            @Override
5635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            public boolean onCreateActionMode(ActionMode mode, Menu menu) {
5735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                mode.getMenuInflater().inflate(R.menu.actions, menu);
5835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                return true;
5935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            }
6035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
6135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            @Override
6235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
6335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                return false;
6435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            }
6535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
6635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            @Override
6735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
6835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                Toast.makeText(ActionBarActionMode.this,
6935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                        "Action Mode item clicked:" + item.getTitle(), Toast.LENGTH_SHORT).show();
7035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                return true;
7135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            }
7235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
7335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            @Override
7435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            public void onDestroyActionMode(ActionMode mode) {
7535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            }
7635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes        });
7735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes    }
7835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
7935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes}
80