public TabInfo( ManageApplications owner, ApplicationsState apps, CharSequence label, int listType, AppClickListener clickListener, Bundle savedInstanceState) { mOwner = owner; mApplicationsState = apps; mLabel = label; mListType = listType; switch (listType) { case LIST_TYPE_DOWNLOADED: mFilter = FILTER_APPS_THIRD_PARTY; break; case LIST_TYPE_SDCARD: mFilter = FILTER_APPS_SDCARD; break; default: mFilter = FILTER_APPS_ALL; break; } mClickListener = clickListener; mInvalidSizeStr = owner.getActivity().getText(R.string.invalid_size_value); mComputingSizeStr = owner.getActivity().getText(R.string.computing_size); mSavedInstanceState = savedInstanceState; }
void handleRunningProcessesAvail() { mLoadingContainer.startAnimation( AnimationUtils.loadAnimation(mOwner.getActivity(), android.R.anim.fade_out)); mRunningProcessesView.startAnimation( AnimationUtils.loadAnimation(mOwner.getActivity(), android.R.anim.fade_in)); mRunningProcessesView.setVisibility(View.VISIBLE); mLoadingContainer.setVisibility(View.GONE); }
public View build(LayoutInflater inflater, ViewGroup contentParent, View contentChild) { if (mRootView != null) { return mRootView; } mInflater = inflater; mRootView = inflater.inflate( mListType == LIST_TYPE_RUNNING ? R.layout.manage_applications_running : R.layout.manage_applications_apps, null); mRootView.setLayoutDirection( mRootView.getResources().getConfiguration().getLayoutDirection()); mLoadingContainer = mRootView.findViewById(R.id.loading_container); mLoadingContainer.setVisibility(View.VISIBLE); mListContainer = mRootView.findViewById(R.id.list_container); if (mListContainer != null) { // Create adapter and list view here View emptyView = mListContainer.findViewById(com.android.internal.R.id.empty); ListView lv = (ListView) mListContainer.findViewById(android.R.id.list); if (emptyView != null) { lv.setEmptyView(emptyView); } lv.setOnItemClickListener(this); lv.setSaveEnabled(true); lv.setItemsCanFocus(true); lv.setTextFilterEnabled(true); lv.setFastScrollEnabled(true); mListView = lv; mApplications = new ApplicationsAdapter(mApplicationsState, this, mFilter); mListView.setAdapter(mApplications); mListView.setRecyclerListener(mApplications); mColorBar = (LinearColorBar) mListContainer.findViewById(R.id.storage_color_bar); mStorageChartLabel = (TextView) mListContainer.findViewById(R.id.storageChartLabel); mUsedStorageText = (TextView) mListContainer.findViewById(R.id.usedStorageText); mFreeStorageText = (TextView) mListContainer.findViewById(R.id.freeStorageText); Utils.prepareCustomPreferencesList(contentParent, contentChild, mListView, false); if (mFilter == FILTER_APPS_SDCARD) { mStorageChartLabel.setText(mOwner.getActivity().getText(R.string.sd_card_storage)); } else { mStorageChartLabel.setText(mOwner.getActivity().getText(R.string.internal_storage)); } applyCurrentStorage(); } mRunningProcessesView = (RunningProcessesView) mRootView.findViewById(R.id.running_processes); if (mRunningProcessesView != null) { mRunningProcessesView.doCreate(mSavedInstanceState); } return mRootView; }
void applyCurrentStorage() { // If view hierarchy is not yet created, no views to update. if (mRootView == null) { return; } if (mTotalStorage > 0) { BidiFormatter bidiFormatter = BidiFormatter.getInstance(); mColorBar.setRatios( (mTotalStorage - mFreeStorage - mAppStorage) / (float) mTotalStorage, mAppStorage / (float) mTotalStorage, mFreeStorage / (float) mTotalStorage); long usedStorage = mTotalStorage - mFreeStorage; if (mLastUsedStorage != usedStorage) { mLastUsedStorage = usedStorage; String sizeStr = bidiFormatter.unicodeWrap( Formatter.formatShortFileSize(mOwner.getActivity(), usedStorage)); mUsedStorageText.setText( mOwner .getActivity() .getResources() .getString(R.string.service_foreground_processes, sizeStr)); } if (mLastFreeStorage != mFreeStorage) { mLastFreeStorage = mFreeStorage; String sizeStr = bidiFormatter.unicodeWrap( Formatter.formatShortFileSize(mOwner.getActivity(), mFreeStorage)); mFreeStorageText.setText( mOwner .getActivity() .getResources() .getString(R.string.service_background_processes, sizeStr)); } } else { mColorBar.setRatios(0, 0, 0); if (mLastUsedStorage != -1) { mLastUsedStorage = -1; mUsedStorageText.setText(""); } if (mLastFreeStorage != -1) { mLastFreeStorage = -1; mFreeStorageText.setText(""); } } }
void updateStorageUsage() { // Make sure a callback didn't come at an inopportune time. if (mOwner.getActivity() == null) return; // Doesn't make sense for stuff that is not an app list. if (mApplications == null) return; mFreeStorage = 0; mAppStorage = 0; mTotalStorage = 0; if (mFilter == FILTER_APPS_SDCARD) { if (mContainerService != null) { try { final long[] stats = mContainerService.getFileSystemStats( Environment.getExternalStorageDirectory().getPath()); mTotalStorage = stats[0]; mFreeStorage = stats[1]; } catch (RemoteException e) { Log.w(TAG, "Problem in container service", e); } } if (mApplications != null) { final int N = mApplications.getCount(); for (int i = 0; i < N; i++) { ApplicationsState.AppEntry ae = mApplications.getAppEntry(i); mAppStorage += ae.externalCodeSize + ae.externalDataSize + ae.externalCacheSize; } } } else { if (mContainerService != null) { try { final long[] stats = mContainerService.getFileSystemStats(Environment.getDataDirectory().getPath()); mTotalStorage = stats[0]; mFreeStorage = stats[1]; } catch (RemoteException e) { Log.w(TAG, "Problem in container service", e); } } final boolean emulatedStorage = Environment.isExternalStorageEmulated(); if (mApplications != null) { final int N = mApplications.getCount(); for (int i = 0; i < N; i++) { ApplicationsState.AppEntry ae = mApplications.getAppEntry(i); mAppStorage += ae.codeSize + ae.dataSize; if (emulatedStorage) { mAppStorage += ae.externalCodeSize + ae.externalDataSize; } } } mFreeStorage += mApplicationsState.sumCacheSizes(); } applyCurrentStorage(); }
public ApplicationsAdapter( ApplicationsState state, ManageApplications manageApplications, int filterMode) { mState = state; mSession = state.newSession(this); mManageApplications = manageApplications; mContext = manageApplications.getActivity(); mPm = mContext.getPackageManager(); mFilterMode = filterMode; if (mManageApplications.mListType == LIST_TYPE_NOTIFICATION) { mExtraInfoBridge = new AppStateNotificationBridge( mContext.getPackageManager(), mState, this, manageApplications.mNotifBackend); } else if (mManageApplications.mListType == LIST_TYPE_USAGE_ACCESS) { mExtraInfoBridge = new AppStateUsageBridge(mContext, mState, this); } else if (mManageApplications.mListType == LIST_TYPE_HIGH_POWER) { mExtraInfoBridge = new AppStatePowerBridge(mState, this); } else if (mManageApplications.mListType == LIST_TYPE_OVERLAY) { mExtraInfoBridge = new AppStateOverlayBridge(mContext, mState, this); } else if (mManageApplications.mListType == LIST_TYPE_WRITE_SETTINGS) { mExtraInfoBridge = new AppStateWriteSettingsBridge(mContext, mState, this); } else { mExtraInfoBridge = null; } }
@Override public void onRunningStateChanged(boolean running) { mManageApplications.getActivity().setProgressBarIndeterminateVisibility(running); }
public FilterSpinnerAdapter(ManageApplications manageApplications) { super(manageApplications.getActivity(), R.layout.filter_spinner_item); setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mManageApplications = manageApplications; }