diff --git a/build/sdk.atree b/build/sdk.atree index 062817385..269f4f9d5 100644 --- a/build/sdk.atree +++ b/build/sdk.atree @@ -280,9 +280,7 @@ developers/build/prebuilts/gradle/CardReader sam developers/build/prebuilts/gradle/BatchStepSensor samples/${PLATFORM_NAME}/sensors/BatchStepSensor developers/build/prebuilts/gradle/DisplayingBitmaps samples/${PLATFORM_NAME}/ui/DisplayingBitmaps developers/build/prebuilts/gradle/BasicTransition samples/${PLATFORM_NAME}/ui/BasicTransition -developers/build/prebuilts/gradle/AdapterTransition samples/${PLATFORM_NAME}/ui/AdapterTransition developers/build/prebuilts/gradle/CustomTransition samples/${PLATFORM_NAME}/ui/CustomTransition -developers/build/prebuilts/gradle/FragmentTransition samples/${PLATFORM_NAME}/ui/FragmentTransition developers/build/prebuilts/gradle/SwipeRefreshLayoutBasic samples/${PLATFORM_NAME}/ui/SwipeRefreshLayoutBasic developers/build/prebuilts/gradle/SwipeRefreshListFragment samples/${PLATFORM_NAME}/ui/SwipeRefreshListFragment developers/build/prebuilts/gradle/SwipeRefreshMultipleViews samples/${PLATFORM_NAME}/ui/SwipeRefreshMultipleViews @@ -314,6 +312,8 @@ developers/build/prebuilts/gradle/PermissionRequest sam developers/build/prebuilts/gradle/DirectorySelection samples/${PLATFORM_NAME}/content/documentsUi/DirectorySelection developers/build/prebuilts/gradle/AppUsageStatistics samples/${PLATFORM_NAME}/system/AppUsageStatistics developers/build/prebuilts/gradle/ScreenCapture samples/${PLATFORM_NAME}/media/ScreenCapture +developers/build/prebuilts/gradle/NfcProvisioning samples/${PLATFORM_NAME}/nfc/NfcProvisioning +developers/build/prebuilts/gradle/DeviceOwner samples/${PLATFORM_NAME}/admin/DeviceOwner developers/build/prebuilts/androidtv samples/${PLATFORM_NAME}/androidtv @@ -322,7 +322,6 @@ developers/build/prebuilts/gradle/AgendaData samples/${PLATFO developers/build/prebuilts/gradle/DataLayer samples/${PLATFORM_NAME}/wearable/DataLayer developers/build/prebuilts/gradle/DelayedConfirmation samples/${PLATFORM_NAME}/wearable/DelayedConfirmation developers/build/prebuilts/gradle/ElizaChat samples/${PLATFORM_NAME}/wearable/ElizaChat -developers/build/prebuilts/gradle/EmbeddedApp samples/${PLATFORM_NAME}/wearable/EmbeddedApp developers/build/prebuilts/gradle/FindMyPhone samples/${PLATFORM_NAME}/wearable/FindMyPhone developers/build/prebuilts/gradle/Flashlight samples/${PLATFORM_NAME}/wearable/Flashlight developers/build/prebuilts/gradle/Geofencing samples/${PLATFORM_NAME}/wearable/Geofencing @@ -337,6 +336,7 @@ developers/build/prebuilts/gradle/SynchronizedNotifications samples/${PLATFO developers/build/prebuilts/gradle/Timer samples/${PLATFORM_NAME}/wearable/Timer developers/build/prebuilts/gradle/WatchFace samples/${PLATFORM_NAME}/wearable/WatchFace developers/build/prebuilts/gradle/WatchViewStub samples/${PLATFORM_NAME}/wearable/WatchViewStub +developers/build/prebuilts/gradle/XYZTouristAttractions samples/${PLATFORM_NAME}/wearable/XYZTouristAttractions # Old sample tree development/samples/AccelerometerPlay samples/${PLATFORM_NAME}/legacy/AccelerometerPlay @@ -503,4 +503,3 @@ ${OUT_DIR}/target/common/obj/PACKAGING/android-support-design_intermediates/andr ############################################################################## framework/layoutlib-tests.jar tests/libtests/layoutlib-tests.jar system/app/EmulatorSmokeTests/EmulatorSmokeTests.apk tests/emulator-test-apps/EmulatorSmokeTests.apk - diff --git a/samples/browseable/ActionBarCompat-Basic/res/layout/activity_main.xml b/samples/browseable/ActionBarCompat-Basic/res/layout/activity_main.xml deleted file mode 100755 index be1aa49d9..000000000 --- a/samples/browseable/ActionBarCompat-Basic/res/layout/activity_main.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - diff --git a/samples/browseable/ActionBarCompat-ListPopupMenu/res/layout/activity_main.xml b/samples/browseable/ActionBarCompat-ListPopupMenu/res/layout/activity_main.xml deleted file mode 100755 index be1aa49d9..000000000 --- a/samples/browseable/ActionBarCompat-ListPopupMenu/res/layout/activity_main.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - diff --git a/samples/browseable/ActionBarCompat-ShareActionProvider/res/layout/activity_main.xml b/samples/browseable/ActionBarCompat-ShareActionProvider/res/layout/activity_main.xml deleted file mode 100755 index be1aa49d9..000000000 --- a/samples/browseable/ActionBarCompat-ShareActionProvider/res/layout/activity_main.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - diff --git a/samples/browseable/ActionBarCompat-Styled/res/layout/activity_main.xml b/samples/browseable/ActionBarCompat-Styled/res/layout/activity_main.xml deleted file mode 100755 index be1aa49d9..000000000 --- a/samples/browseable/ActionBarCompat-Styled/res/layout/activity_main.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - diff --git a/samples/browseable/ActivityInstrumentation/res/layout/activity_main.xml b/samples/browseable/ActivityInstrumentation/res/layout/activity_main.xml deleted file mode 100755 index be1aa49d9..000000000 --- a/samples/browseable/ActivityInstrumentation/res/layout/activity_main.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - diff --git a/samples/browseable/ActivitySceneTransitionBasic/res/layout/activity_main.xml b/samples/browseable/ActivitySceneTransitionBasic/res/layout/activity_main.xml deleted file mode 100755 index be1aa49d9..000000000 --- a/samples/browseable/ActivitySceneTransitionBasic/res/layout/activity_main.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - diff --git a/samples/browseable/AdapterTransition/AndroidManifest.xml b/samples/browseable/AdapterTransition/AndroidManifest.xml deleted file mode 100644 index a998a4c7a..000000000 --- a/samples/browseable/AdapterTransition/AndroidManifest.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/samples/browseable/AdapterTransition/_index.jd b/samples/browseable/AdapterTransition/_index.jd deleted file mode 100644 index a2d134ac5..000000000 --- a/samples/browseable/AdapterTransition/_index.jd +++ /dev/null @@ -1,9 +0,0 @@ -page.tags="AdapterTransition" -sample.group=UI -@jd:body - -

- - Transition cannot be directly applied to AdapterViews. In this sample, we demonstrate how to create an overlay layout and run a Transition on it. Press the action bar button to toggle between ListView and GridView. - -

diff --git a/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_action_grid.png b/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_action_grid.png deleted file mode 100644 index e04f4a7f5..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_action_grid.png and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_action_list.png b/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_action_list.png deleted file mode 100644 index 4131dba4e..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_action_list.png and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_launcher.png b/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_launcher.png deleted file mode 100644 index b7a67c0cf..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-hdpi/ic_launcher.png and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_action_grid.png b/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_action_grid.png deleted file mode 100644 index f2a83e38c..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_action_grid.png and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_action_list.png b/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_action_list.png deleted file mode 100644 index e248a488e..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_action_list.png and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_launcher.png b/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_launcher.png deleted file mode 100644 index 1c9fc097d..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-mdpi/ic_launcher.png and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p1.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p1.jpg deleted file mode 100644 index 10f07acf1..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-nodpi/p1.jpg and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p10.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p10.jpg deleted file mode 100644 index 4272f4cc0..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-nodpi/p10.jpg and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p11.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p11.jpg deleted file mode 100644 index c5722b229..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-nodpi/p11.jpg and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p2.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p2.jpg deleted file mode 100644 index ca380ae4e..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-nodpi/p2.jpg and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p3.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p3.jpg deleted file mode 100644 index 6fc71e765..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-nodpi/p3.jpg and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p4.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p4.jpg deleted file mode 100644 index 153c1ffe8..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-nodpi/p4.jpg and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p5.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p5.jpg deleted file mode 100644 index 46d6a13df..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-nodpi/p5.jpg and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p6.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p6.jpg deleted file mode 100644 index 89ccb8329..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-nodpi/p6.jpg and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p7.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p7.jpg deleted file mode 100644 index 7e9546dde..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-nodpi/p7.jpg and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p8.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p8.jpg deleted file mode 100644 index 21e25ba17..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-nodpi/p8.jpg and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-nodpi/p9.jpg b/samples/browseable/AdapterTransition/res/drawable-nodpi/p9.jpg deleted file mode 100644 index 79854cb64..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-nodpi/p9.jpg and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_action_grid.png b/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_action_grid.png deleted file mode 100644 index ecd39b530..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_action_grid.png and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_action_list.png b/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_action_list.png deleted file mode 100644 index e7e510d07..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_action_list.png and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_launcher.png deleted file mode 100644 index 11b992810..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-xhdpi/ic_launcher.png and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_action_grid.png b/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_action_grid.png deleted file mode 100644 index 3ba98fc15..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_action_grid.png and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_action_list.png b/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_action_list.png deleted file mode 100644 index d18773288..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_action_list.png and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_launcher.png b/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_launcher.png deleted file mode 100644 index f136c9f14..000000000 Binary files a/samples/browseable/AdapterTransition/res/drawable-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/samples/browseable/AdapterTransition/res/layout/item_meat_grid.xml b/samples/browseable/AdapterTransition/res/layout/item_meat_grid.xml deleted file mode 100644 index d7fb77a76..000000000 --- a/samples/browseable/AdapterTransition/res/layout/item_meat_grid.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/samples/browseable/AdapterTransition/res/layout/item_meat_list.xml b/samples/browseable/AdapterTransition/res/layout/item_meat_list.xml deleted file mode 100644 index 8d75b9094..000000000 --- a/samples/browseable/AdapterTransition/res/layout/item_meat_list.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/AdapterTransitionFragment.java b/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/AdapterTransitionFragment.java deleted file mode 100644 index a9498189e..000000000 --- a/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/AdapterTransitionFragment.java +++ /dev/null @@ -1,280 +0,0 @@ -/* - * Copyright 2014 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.adaptertransition; - -import android.os.Bundle; -import android.support.v4.app.ActivityCompat; -import android.support.v4.app.Fragment; -import android.transition.AutoTransition; -import android.transition.Scene; -import android.transition.Transition; -import android.transition.TransitionManager; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AbsListView; -import android.widget.FrameLayout; -import android.widget.GridView; -import android.widget.ListView; -import android.widget.Toast; - -/** - * Main screen for AdapterTransition sample. - */ -public class AdapterTransitionFragment extends Fragment implements Transition.TransitionListener { - - /** - * Since the transition framework requires all relevant views in a view hierarchy to be marked - * with IDs, we use this ID to mark the root view. - */ - private static final int ROOT_ID = 1; - - /** - * A tag for saving state whether the mAbsListView is ListView or GridView. - */ - private static final String STATE_IS_LISTVIEW = "is_listview"; - - /** - * This is where we place our AdapterView (ListView / GridView). - */ - private FrameLayout mContent; - - /** - * This is where we carry out the transition. - */ - private FrameLayout mCover; - - /** - * This list shows our contents. It can be ListView or GridView, and we toggle between them - * using the transition framework. - */ - private AbsListView mAbsListView; - - /** - * This is our contents. - */ - private MeatAdapter mAdapter; - - public static AdapterTransitionFragment newInstance() { - return new AdapterTransitionFragment(); - } - - public AdapterTransitionFragment() { - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setHasOptionsMenu(true); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - // If savedInstanceState is available, we restore the state whether the list is a ListView - // or a GridView. - boolean isListView; - if (null == savedInstanceState) { - isListView = true; - } else { - isListView = savedInstanceState.getBoolean(STATE_IS_LISTVIEW, true); - } - inflateAbsList(inflater, container, isListView); - return inflater.inflate(R.layout.fragment_adapter_transition, container, false); - } - - @Override - public void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - outState.putBoolean(STATE_IS_LISTVIEW, mAbsListView instanceof ListView); - } - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - // Retaining references for FrameLayouts that we use later. - mContent = (FrameLayout) view.findViewById(R.id.content); - mCover = (FrameLayout) view.findViewById(R.id.cover); - // We are attaching the list to the screen here. - mContent.addView(mAbsListView); - } - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.fragment_adapter_transition, menu); - } - - @Override - public void onPrepareOptionsMenu(Menu menu) { - // We change the look of the icon every time the user toggles between list and grid. - MenuItem item = menu.findItem(R.id.action_toggle); - if (null != item) { - if (mAbsListView instanceof ListView) { - item.setIcon(R.drawable.ic_action_grid); - item.setTitle(R.string.show_as_grid); - } else { - item.setIcon(R.drawable.ic_action_list); - item.setTitle(R.string.show_as_list); - } - } - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.action_toggle: { - toggle(); - return true; - } - } - return false; - } - - @Override - public void onTransitionStart(Transition transition) { - } - - // BEGIN_INCLUDE(on_transition_end) - @Override - public void onTransitionEnd(Transition transition) { - // When the transition ends, we remove all the views from the overlay and hide it. - mCover.removeAllViews(); - mCover.setVisibility(View.INVISIBLE); - } - // END_INCLUDE(on_transition_end) - - @Override - public void onTransitionCancel(Transition transition) { - } - - @Override - public void onTransitionPause(Transition transition) { - } - - @Override - public void onTransitionResume(Transition transition) { - } - - /** - * Inflate a ListView or a GridView with a corresponding ListAdapter. - * - * @param inflater The LayoutInflater. - * @param container The ViewGroup that contains this AbsListView. The AbsListView won't be - * attached to it. - * @param inflateListView Pass true to inflate a ListView, or false to inflate a GridView. - */ - private void inflateAbsList(LayoutInflater inflater, ViewGroup container, - boolean inflateListView) { - if (inflateListView) { - mAbsListView = (AbsListView) inflater.inflate(R.layout.fragment_meat_list, - container, false); - mAdapter = new MeatAdapter(inflater, R.layout.item_meat_list); - } else { - mAbsListView = (AbsListView) inflater.inflate(R.layout.fragment_meat_grid, - container, false); - mAdapter = new MeatAdapter(inflater, R.layout.item_meat_grid); - } - mAbsListView.setAdapter(mAdapter); - mAbsListView.setOnItemClickListener(mAdapter); - } - - /** - * Toggle the UI between ListView and GridView. - */ - private void toggle() { - // We use mCover as the overlay on which we carry out the transition. - mCover.setVisibility(View.VISIBLE); - // This FrameLayout holds all the visible views in the current list or grid. We use this as - // the starting Scene of the Transition later. - FrameLayout before = copyVisibleViews(); - FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( - FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT); - mCover.addView(before, params); - // Swap the actual list. - swapAbsListView(); - // We also swap the icon for the toggle button. - ActivityCompat.invalidateOptionsMenu(getActivity()); - // It is now ready to start the transition. - mAbsListView.post(new Runnable() { - @Override - public void run() { - // BEGIN_INCLUDE(transition_with_listener) - Scene scene = new Scene(mCover, copyVisibleViews()); - Transition transition = new AutoTransition(); - transition.addListener(AdapterTransitionFragment.this); - TransitionManager.go(scene, transition); - // END_INCLUDE(transition_with_listener) - } - }); - } - - /** - * Swap ListView with GridView, or GridView with ListView. - */ - private void swapAbsListView() { - // We save the current scrolling position before removing the current list. - int first = mAbsListView.getFirstVisiblePosition(); - // If the current list is a GridView, we replace it with a ListView. If it is a ListView, - // a GridView. - LayoutInflater inflater = LayoutInflater.from(getActivity()); - inflateAbsList(inflater, (ViewGroup) mAbsListView.getParent(), - mAbsListView instanceof GridView); - mAbsListView.setAdapter(mAdapter); - // We restore the scrolling position here. - mAbsListView.setSelection(first); - // The new list is ready, and we replace the existing one with it. - mContent.removeAllViews(); - mContent.addView(mAbsListView); - } - - /** - * Copy all the visible views in the mAbsListView into a new FrameLayout and return it. - * - * @return a FrameLayout with all the visible views inside. - */ - private FrameLayout copyVisibleViews() { - // This is the FrameLayout we return afterwards. - FrameLayout layout = new FrameLayout(getActivity()); - // The transition framework requires to set ID for all views to be animated. - layout.setId(ROOT_ID); - // We only copy visible views. - int first = mAbsListView.getFirstVisiblePosition(); - int index = 0; - while (true) { - // This is one of the views that we copy. Note that the argument for getChildAt is a - // zero-oriented index, and it doesn't usually match with its position in the list. - View source = mAbsListView.getChildAt(index); - if (null == source) { - break; - } - // This is the copy of the original view. - View destination = mAdapter.getView(first + index, null, layout); - assert destination != null; - destination.setId(ROOT_ID + first + index); - FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( - source.getWidth(), source.getHeight()); - params.leftMargin = (int) source.getX(); - params.topMargin = (int) source.getY(); - layout.addView(destination, params); - ++index; - } - return layout; - } - -} diff --git a/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/Meat.java b/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/Meat.java deleted file mode 100644 index bca1c5f00..000000000 --- a/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/Meat.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2014 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.adaptertransition; - -/** - * Sample data. - */ -public class Meat { - - public int resourceId; - public String title; - - public Meat(int resourceId, String title) { - this.resourceId = resourceId; - this.title = title; - } - - public static final Meat[] MEATS = { - new Meat(R.drawable.p1, "First"), - new Meat(R.drawable.p2, "Second"), - new Meat(R.drawable.p3, "Third"), - new Meat(R.drawable.p4, "Fourth"), - new Meat(R.drawable.p5, "Fifth"), - new Meat(R.drawable.p6, "Sixth"), - new Meat(R.drawable.p7, "Seventh"), - new Meat(R.drawable.p8, "Eighth"), - new Meat(R.drawable.p9, "Ninth"), - new Meat(R.drawable.p10, "Tenth"), - new Meat(R.drawable.p11, "Eleventh"), - }; - -} diff --git a/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/MeatAdapter.java b/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/MeatAdapter.java deleted file mode 100644 index dea443584..000000000 --- a/samples/browseable/AdapterTransition/src/com.example.android.adaptertransition/MeatAdapter.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright 2014 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.adaptertransition; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AbsListView; -import android.widget.AdapterView; -import android.widget.BaseAdapter; -import android.widget.ImageView; -import android.widget.TextView; -import android.widget.Toast; - -/** - * This class provides data as Views. It is designed to support both ListView and GridView by - * changing a layout resource file to inflate. - */ -public class MeatAdapter extends BaseAdapter implements AbsListView.OnItemClickListener { - - private final LayoutInflater mLayoutInflater; - private final int mResourceId; - - /** - * Create a new instance of {@link MeatAdapter}. - * - * @param inflater The layout inflater. - * @param resourceId The resource ID for the layout to be used. The layout should contain an - * ImageView with ID of "meat_image" and a TextView with ID of "meat_title". - */ - public MeatAdapter(LayoutInflater inflater, int resourceId) { - mLayoutInflater = inflater; - mResourceId = resourceId; - } - - @Override - public int getCount() { - return Meat.MEATS.length; - } - - @Override - public Meat getItem(int position) { - return Meat.MEATS[position]; - } - - @Override - public long getItemId(int position) { - return Meat.MEATS[position].resourceId; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - final View view; - final ViewHolder holder; - if (null == convertView) { - view = mLayoutInflater.inflate(mResourceId, parent, false); - holder = new ViewHolder(); - assert view != null; - holder.image = (ImageView) view.findViewById(R.id.meat_image); - holder.title = (TextView) view.findViewById(R.id.meat_title); - view.setTag(holder); - } else { - view = convertView; - holder = (ViewHolder) view.getTag(); - } - Meat meat = getItem(position); - holder.image.setImageResource(meat.resourceId); - holder.title.setText(meat.title); - return view; - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - ViewHolder holder = (ViewHolder) view.getTag(); - Context context = view.getContext(); - if (null != holder && null != holder.title && null != context) { - Toast.makeText(context, context.getString(R.string.item_clicked, - holder.title.getText()), Toast.LENGTH_SHORT).show(); - } - } - - private static class ViewHolder { - public ImageView image; - public TextView title; - } - -} diff --git a/samples/browseable/AdapterTransition/src/com.example.android.common/view/SlidingTabLayout.java b/samples/browseable/AdapterTransition/src/com.example.android.common/view/SlidingTabLayout.java deleted file mode 100644 index 20049e335..000000000 --- a/samples/browseable/AdapterTransition/src/com.example.android.common/view/SlidingTabLayout.java +++ /dev/null @@ -1,314 +0,0 @@ -/* - * Copyright (C) 2013 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.common.view; - -import android.content.Context; -import android.graphics.Typeface; -import android.os.Build; -import android.support.v4.view.PagerAdapter; -import android.support.v4.view.ViewPager; -import android.util.AttributeSet; -import android.util.TypedValue; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.HorizontalScrollView; -import android.widget.TextView; - -/** - * To be used with ViewPager to provide a tab indicator component which give constant feedback as to - * the user's scroll progress. - *

- * To use the component, simply add it to your view hierarchy. Then in your - * {@link android.app.Activity} or {@link android.support.v4.app.Fragment} call - * {@link #setViewPager(ViewPager)} providing it the ViewPager this layout is being used for. - *

- * The colors can be customized in two ways. The first and simplest is to provide an array of colors - * via {@link #setSelectedIndicatorColors(int...)} and {@link #setDividerColors(int...)}. The - * alternative is via the {@link TabColorizer} interface which provides you complete control over - * which color is used for any individual position. - *

- * The views used as tabs can be customized by calling {@link #setCustomTabView(int, int)}, - * providing the layout ID of your custom layout. - */ -public class SlidingTabLayout extends HorizontalScrollView { - - /** - * Allows complete control over the colors drawn in the tab layout. Set with - * {@link #setCustomTabColorizer(TabColorizer)}. - */ - public interface TabColorizer { - - /** - * @return return the color of the indicator used when {@code position} is selected. - */ - int getIndicatorColor(int position); - - /** - * @return return the color of the divider drawn to the right of {@code position}. - */ - int getDividerColor(int position); - - } - - private static final int TITLE_OFFSET_DIPS = 24; - private static final int TAB_VIEW_PADDING_DIPS = 16; - private static final int TAB_VIEW_TEXT_SIZE_SP = 12; - - private int mTitleOffset; - - private int mTabViewLayoutId; - private int mTabViewTextViewId; - - private ViewPager mViewPager; - private ViewPager.OnPageChangeListener mViewPagerPageChangeListener; - - private final SlidingTabStrip mTabStrip; - - public SlidingTabLayout(Context context) { - this(context, null); - } - - public SlidingTabLayout(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public SlidingTabLayout(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - - // Disable the Scroll Bar - setHorizontalScrollBarEnabled(false); - // Make sure that the Tab Strips fills this View - setFillViewport(true); - - mTitleOffset = (int) (TITLE_OFFSET_DIPS * getResources().getDisplayMetrics().density); - - mTabStrip = new SlidingTabStrip(context); - addView(mTabStrip, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); - } - - /** - * Set the custom {@link TabColorizer} to be used. - * - * If you only require simple custmisation then you can use - * {@link #setSelectedIndicatorColors(int...)} and {@link #setDividerColors(int...)} to achieve - * similar effects. - */ - public void setCustomTabColorizer(TabColorizer tabColorizer) { - mTabStrip.setCustomTabColorizer(tabColorizer); - } - - /** - * Sets the colors to be used for indicating the selected tab. These colors are treated as a - * circular array. Providing one color will mean that all tabs are indicated with the same color. - */ - public void setSelectedIndicatorColors(int... colors) { - mTabStrip.setSelectedIndicatorColors(colors); - } - - /** - * Sets the colors to be used for tab dividers. These colors are treated as a circular array. - * Providing one color will mean that all tabs are indicated with the same color. - */ - public void setDividerColors(int... colors) { - mTabStrip.setDividerColors(colors); - } - - /** - * Set the {@link ViewPager.OnPageChangeListener}. When using {@link SlidingTabLayout} you are - * required to set any {@link ViewPager.OnPageChangeListener} through this method. This is so - * that the layout can update it's scroll position correctly. - * - * @see ViewPager#setOnPageChangeListener(ViewPager.OnPageChangeListener) - */ - public void setOnPageChangeListener(ViewPager.OnPageChangeListener listener) { - mViewPagerPageChangeListener = listener; - } - - /** - * Set the custom layout to be inflated for the tab views. - * - * @param layoutResId Layout id to be inflated - * @param textViewId id of the {@link TextView} in the inflated view - */ - public void setCustomTabView(int layoutResId, int textViewId) { - mTabViewLayoutId = layoutResId; - mTabViewTextViewId = textViewId; - } - - /** - * Sets the associated view pager. Note that the assumption here is that the pager content - * (number of tabs and tab titles) does not change after this call has been made. - */ - public void setViewPager(ViewPager viewPager) { - mTabStrip.removeAllViews(); - - mViewPager = viewPager; - if (viewPager != null) { - viewPager.setOnPageChangeListener(new InternalViewPagerListener()); - populateTabStrip(); - } - } - - /** - * Create a default view to be used for tabs. This is called if a custom tab view is not set via - * {@link #setCustomTabView(int, int)}. - */ - protected TextView createDefaultTabView(Context context) { - TextView textView = new TextView(context); - textView.setGravity(Gravity.CENTER); - textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, TAB_VIEW_TEXT_SIZE_SP); - textView.setTypeface(Typeface.DEFAULT_BOLD); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { - // If we're running on Honeycomb or newer, then we can use the Theme's - // selectableItemBackground to ensure that the View has a pressed state - TypedValue outValue = new TypedValue(); - getContext().getTheme().resolveAttribute(android.R.attr.selectableItemBackground, - outValue, true); - textView.setBackgroundResource(outValue.resourceId); - } - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { - // If we're running on ICS or newer, enable all-caps to match the Action Bar tab style - textView.setAllCaps(true); - } - - int padding = (int) (TAB_VIEW_PADDING_DIPS * getResources().getDisplayMetrics().density); - textView.setPadding(padding, padding, padding, padding); - - return textView; - } - - private void populateTabStrip() { - final PagerAdapter adapter = mViewPager.getAdapter(); - final View.OnClickListener tabClickListener = new TabClickListener(); - - for (int i = 0; i < adapter.getCount(); i++) { - View tabView = null; - TextView tabTitleView = null; - - if (mTabViewLayoutId != 0) { - // If there is a custom tab view layout id set, try and inflate it - tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip, - false); - tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId); - } - - if (tabView == null) { - tabView = createDefaultTabView(getContext()); - } - - if (tabTitleView == null && TextView.class.isInstance(tabView)) { - tabTitleView = (TextView) tabView; - } - - tabTitleView.setText(adapter.getPageTitle(i)); - tabView.setOnClickListener(tabClickListener); - - mTabStrip.addView(tabView); - } - } - - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - - if (mViewPager != null) { - scrollToTab(mViewPager.getCurrentItem(), 0); - } - } - - private void scrollToTab(int tabIndex, int positionOffset) { - final int tabStripChildCount = mTabStrip.getChildCount(); - if (tabStripChildCount == 0 || tabIndex < 0 || tabIndex >= tabStripChildCount) { - return; - } - - View selectedChild = mTabStrip.getChildAt(tabIndex); - if (selectedChild != null) { - int targetScrollX = selectedChild.getLeft() + positionOffset; - - if (tabIndex > 0 || positionOffset > 0) { - // If we're not at the first child and are mid-scroll, make sure we obey the offset - targetScrollX -= mTitleOffset; - } - - scrollTo(targetScrollX, 0); - } - } - - private class InternalViewPagerListener implements ViewPager.OnPageChangeListener { - private int mScrollState; - - @Override - public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { - int tabStripChildCount = mTabStrip.getChildCount(); - if ((tabStripChildCount == 0) || (position < 0) || (position >= tabStripChildCount)) { - return; - } - - mTabStrip.onViewPagerPageChanged(position, positionOffset); - - View selectedTitle = mTabStrip.getChildAt(position); - int extraOffset = (selectedTitle != null) - ? (int) (positionOffset * selectedTitle.getWidth()) - : 0; - scrollToTab(position, extraOffset); - - if (mViewPagerPageChangeListener != null) { - mViewPagerPageChangeListener.onPageScrolled(position, positionOffset, - positionOffsetPixels); - } - } - - @Override - public void onPageScrollStateChanged(int state) { - mScrollState = state; - - if (mViewPagerPageChangeListener != null) { - mViewPagerPageChangeListener.onPageScrollStateChanged(state); - } - } - - @Override - public void onPageSelected(int position) { - if (mScrollState == ViewPager.SCROLL_STATE_IDLE) { - mTabStrip.onViewPagerPageChanged(position, 0f); - scrollToTab(position, 0); - } - - if (mViewPagerPageChangeListener != null) { - mViewPagerPageChangeListener.onPageSelected(position); - } - } - - } - - private class TabClickListener implements View.OnClickListener { - @Override - public void onClick(View v) { - for (int i = 0; i < mTabStrip.getChildCount(); i++) { - if (v == mTabStrip.getChildAt(i)) { - mViewPager.setCurrentItem(i); - return; - } - } - } - } - -} diff --git a/samples/browseable/AdapterTransition/src/com.example.android.common/view/SlidingTabStrip.java b/samples/browseable/AdapterTransition/src/com.example.android.common/view/SlidingTabStrip.java deleted file mode 100644 index d5bbbae59..000000000 --- a/samples/browseable/AdapterTransition/src/com.example.android.common/view/SlidingTabStrip.java +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright (C) 2013 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.common.view; - -import android.R; -import android.content.Context; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.Paint; -import android.util.AttributeSet; -import android.util.TypedValue; -import android.view.View; -import android.widget.LinearLayout; - -class SlidingTabStrip extends LinearLayout { - - private static final int DEFAULT_BOTTOM_BORDER_THICKNESS_DIPS = 2; - private static final byte DEFAULT_BOTTOM_BORDER_COLOR_ALPHA = 0x26; - private static final int SELECTED_INDICATOR_THICKNESS_DIPS = 8; - private static final int DEFAULT_SELECTED_INDICATOR_COLOR = 0xFF33B5E5; - - private static final int DEFAULT_DIVIDER_THICKNESS_DIPS = 1; - private static final byte DEFAULT_DIVIDER_COLOR_ALPHA = 0x20; - private static final float DEFAULT_DIVIDER_HEIGHT = 0.5f; - - private final int mBottomBorderThickness; - private final Paint mBottomBorderPaint; - - private final int mSelectedIndicatorThickness; - private final Paint mSelectedIndicatorPaint; - - private final int mDefaultBottomBorderColor; - - private final Paint mDividerPaint; - private final float mDividerHeight; - - private int mSelectedPosition; - private float mSelectionOffset; - - private SlidingTabLayout.TabColorizer mCustomTabColorizer; - private final SimpleTabColorizer mDefaultTabColorizer; - - SlidingTabStrip(Context context) { - this(context, null); - } - - SlidingTabStrip(Context context, AttributeSet attrs) { - super(context, attrs); - setWillNotDraw(false); - - final float density = getResources().getDisplayMetrics().density; - - TypedValue outValue = new TypedValue(); - context.getTheme().resolveAttribute(R.attr.colorForeground, outValue, true); - final int themeForegroundColor = outValue.data; - - mDefaultBottomBorderColor = setColorAlpha(themeForegroundColor, - DEFAULT_BOTTOM_BORDER_COLOR_ALPHA); - - mDefaultTabColorizer = new SimpleTabColorizer(); - mDefaultTabColorizer.setIndicatorColors(DEFAULT_SELECTED_INDICATOR_COLOR); - mDefaultTabColorizer.setDividerColors(setColorAlpha(themeForegroundColor, - DEFAULT_DIVIDER_COLOR_ALPHA)); - - mBottomBorderThickness = (int) (DEFAULT_BOTTOM_BORDER_THICKNESS_DIPS * density); - mBottomBorderPaint = new Paint(); - mBottomBorderPaint.setColor(mDefaultBottomBorderColor); - - mSelectedIndicatorThickness = (int) (SELECTED_INDICATOR_THICKNESS_DIPS * density); - mSelectedIndicatorPaint = new Paint(); - - mDividerHeight = DEFAULT_DIVIDER_HEIGHT; - mDividerPaint = new Paint(); - mDividerPaint.setStrokeWidth((int) (DEFAULT_DIVIDER_THICKNESS_DIPS * density)); - } - - void setCustomTabColorizer(SlidingTabLayout.TabColorizer customTabColorizer) { - mCustomTabColorizer = customTabColorizer; - invalidate(); - } - - void setSelectedIndicatorColors(int... colors) { - // Make sure that the custom colorizer is removed - mCustomTabColorizer = null; - mDefaultTabColorizer.setIndicatorColors(colors); - invalidate(); - } - - void setDividerColors(int... colors) { - // Make sure that the custom colorizer is removed - mCustomTabColorizer = null; - mDefaultTabColorizer.setDividerColors(colors); - invalidate(); - } - - void onViewPagerPageChanged(int position, float positionOffset) { - mSelectedPosition = position; - mSelectionOffset = positionOffset; - invalidate(); - } - - @Override - protected void onDraw(Canvas canvas) { - final int height = getHeight(); - final int childCount = getChildCount(); - final int dividerHeightPx = (int) (Math.min(Math.max(0f, mDividerHeight), 1f) * height); - final SlidingTabLayout.TabColorizer tabColorizer = mCustomTabColorizer != null - ? mCustomTabColorizer - : mDefaultTabColorizer; - - // Thick colored underline below the current selection - if (childCount > 0) { - View selectedTitle = getChildAt(mSelectedPosition); - int left = selectedTitle.getLeft(); - int right = selectedTitle.getRight(); - int color = tabColorizer.getIndicatorColor(mSelectedPosition); - - if (mSelectionOffset > 0f && mSelectedPosition < (getChildCount() - 1)) { - int nextColor = tabColorizer.getIndicatorColor(mSelectedPosition + 1); - if (color != nextColor) { - color = blendColors(nextColor, color, mSelectionOffset); - } - - // Draw the selection partway between the tabs - View nextTitle = getChildAt(mSelectedPosition + 1); - left = (int) (mSelectionOffset * nextTitle.getLeft() + - (1.0f - mSelectionOffset) * left); - right = (int) (mSelectionOffset * nextTitle.getRight() + - (1.0f - mSelectionOffset) * right); - } - - mSelectedIndicatorPaint.setColor(color); - - canvas.drawRect(left, height - mSelectedIndicatorThickness, right, - height, mSelectedIndicatorPaint); - } - - // Thin underline along the entire bottom edge - canvas.drawRect(0, height - mBottomBorderThickness, getWidth(), height, mBottomBorderPaint); - - // Vertical separators between the titles - int separatorTop = (height - dividerHeightPx) / 2; - for (int i = 0; i < childCount - 1; i++) { - View child = getChildAt(i); - mDividerPaint.setColor(tabColorizer.getDividerColor(i)); - canvas.drawLine(child.getRight(), separatorTop, child.getRight(), - separatorTop + dividerHeightPx, mDividerPaint); - } - } - - /** - * Set the alpha value of the {@code color} to be the given {@code alpha} value. - */ - private static int setColorAlpha(int color, byte alpha) { - return Color.argb(alpha, Color.red(color), Color.green(color), Color.blue(color)); - } - - /** - * Blend {@code color1} and {@code color2} using the given ratio. - * - * @param ratio of which to blend. 1.0 will return {@code color1}, 0.5 will give an even blend, - * 0.0 will return {@code color2}. - */ - private static int blendColors(int color1, int color2, float ratio) { - final float inverseRation = 1f - ratio; - float r = (Color.red(color1) * ratio) + (Color.red(color2) * inverseRation); - float g = (Color.green(color1) * ratio) + (Color.green(color2) * inverseRation); - float b = (Color.blue(color1) * ratio) + (Color.blue(color2) * inverseRation); - return Color.rgb((int) r, (int) g, (int) b); - } - - private static class SimpleTabColorizer implements SlidingTabLayout.TabColorizer { - private int[] mIndicatorColors; - private int[] mDividerColors; - - @Override - public final int getIndicatorColor(int position) { - return mIndicatorColors[position % mIndicatorColors.length]; - } - - @Override - public final int getDividerColor(int position) { - return mDividerColors[position % mDividerColors.length]; - } - - void setIndicatorColors(int... colors) { - mIndicatorColors = colors; - } - - void setDividerColors(int... colors) { - mDividerColors = colors; - } - } -} \ No newline at end of file diff --git a/samples/browseable/AgendaData/Application/res/layout/activity_main.xml b/samples/browseable/AgendaData/Application/res/layout/activity_main.xml deleted file mode 100755 index be1aa49d9..000000000 --- a/samples/browseable/AgendaData/Application/res/layout/activity_main.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - diff --git a/samples/browseable/AppRestrictionEnforcer/res/layout/activity_main.xml b/samples/browseable/AppRestrictionEnforcer/res/layout/activity_main.xml deleted file mode 100755 index be1aa49d9..000000000 --- a/samples/browseable/AppRestrictionEnforcer/res/layout/activity_main.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - diff --git a/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_app_restriction_enforcer.xml b/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_app_restriction_enforcer.xml index e6c50a245..011819169 100644 --- a/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_app_restriction_enforcer.xml +++ b/samples/browseable/AppRestrictionEnforcer/res/layout/fragment_app_restriction_enforcer.xml @@ -14,31 +14,111 @@ See the License for the specific language governing permissions and limitations under the License. --> - - + + + android:orientation="vertical" + android:paddingBottom="@dimen/vertical_page_margin" + android:paddingLeft="@dimen/horizontal_page_margin" + android:paddingRight="@dimen/horizontal_page_margin" + android:paddingTop="@dimen/vertical_page_margin"> -