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 android.os.Bundle;
2035ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.support.v7.app.AppCompatActivity;
2135ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.support.v7.view.ActionMode;
2235ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.Menu;
2335ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.MenuItem;
2435ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.view.View;
2535ca04feb36f74e5369a62114e33996cd4a62575Chris Banesimport android.widget.Toast;
2635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
2727644c071b7fc0e1e4f91194f2a08b4aa2cf1465Aurimas Liutikasimport com.example.android.supportv7.R;
2827644c071b7fc0e1e4f91194f2a08b4aa2cf1465Aurimas Liutikas
2935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes/**
3035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes * This demonstrates idiomatic usage of an action mode.
3135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes */
3235ca04feb36f74e5369a62114e33996cd4a62575Chris Banespublic class ActionBarActionMode extends AppCompatActivity {
3335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
3435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes    @Override
3535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes    protected void onCreate(Bundle savedInstanceState) {
3635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes        super.onCreate(savedInstanceState);
3735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes        setContentView(R.layout.action_bar_action_mode);
3835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
3935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes        findViewById(R.id.btn_start_action_mode).setOnClickListener(new View.OnClickListener() {
4035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            @Override
4135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            public void onClick(View view) {
4235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                startActionMode();
4335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            }
4435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes        });
4535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes    }
4635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
4735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes    private void startActionMode() {
4835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes        startSupportActionMode(new ActionMode.Callback() {
4935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            @Override
5035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            public boolean onCreateActionMode(ActionMode mode, Menu menu) {
5135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                mode.getMenuInflater().inflate(R.menu.actions, menu);
5235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                return true;
5335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            }
5435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
5535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            @Override
5635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
5735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                return false;
5835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            }
5935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
6035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            @Override
6135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
6235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                Toast.makeText(ActionBarActionMode.this,
6335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                        "Action Mode item clicked:" + item.getTitle(), Toast.LENGTH_SHORT).show();
6435ca04feb36f74e5369a62114e33996cd4a62575Chris Banes                return true;
6535ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            }
6635ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
6735ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            @Override
6835ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            public void onDestroyActionMode(ActionMode mode) {
6935ca04feb36f74e5369a62114e33996cd4a62575Chris Banes            }
7035ca04feb36f74e5369a62114e33996cd4a62575Chris Banes        });
7135ca04feb36f74e5369a62114e33996cd4a62575Chris Banes    }
7235ca04feb36f74e5369a62114e33996cd4a62575Chris Banes
7335ca04feb36f74e5369a62114e33996cd4a62575Chris Banes}
74