blob: d0cf2f1e107f452b7281d421c51b0707f4cd798b [file] [log] [blame]
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.example.android.pm.shortcutlauncherdemo;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import androidx.legacy.app.FragmentStatePagerAdapter;
import androidx.core.os.BuildCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import android.view.ViewGroup;
public class ShortcutLauncherMain extends Activity {
private ViewPager mPager;
private PagerAdapter mPagerAdapter;
private int mNumTabs;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mNumTabs = BuildCompat.isAtLeastO() ? 3 : 2;
mPager = (ViewPager) findViewById(R.id.pager);
mPager.setOffscreenPageLimit(2);
mPagerAdapter = new MyPagerAdapter(getFragmentManager());
mPager.setAdapter(mPagerAdapter);
final ActionBar ab = getActionBar();
ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ab.addTab(ab.newTab().setText("App list").setTabListener(mTabListener));
ab.addTab(ab.newTab().setText("Pinned shortcuts").setTabListener(mTabListener));
if (mNumTabs > 2) {
ab.addTab(ab.newTab().setText("Create shortcuts").setTabListener(mTabListener));
}
}
@Override
public void onBackPressed() {
// Ignore.
}
private TabListener mTabListener = new TabListener() {
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
mPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
};
private class MyPagerAdapter extends FragmentStatePagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new AppListFragment();
case 1:
return new ShortcutListFragment().setArguments(
/* targetPackage =*/ null,
/* targetActivity =*/ null,
/* includeDynamic = */ false,
/* includeManifest = */ false,
/* includePinned =*/ true,
null /* means "all profiles" of this user*/,
/* showDetails =*/ true
);
case 2:
return new ShortcutTemplateListFragment();
}
return null;
}
@Override
public int getCount() {
return mNumTabs;
}
@Override
public void setPrimaryItem(ViewGroup container, int position, Object object) {
super.setPrimaryItem(container, position, object);
getActionBar().selectTab(getActionBar().getTabAt(position));
}
}
}