Search in sources :

Example 36 with END

use of android.support.v7.widget.helper.ItemTouchHelper.END in project android_packages_apps_Settings by crdroidandroid.

the class UserSettings method updateUserList.

private void updateUserList() {
    if (getActivity() == null)
        return;
    List<UserInfo> users = mUserManager.getUsers(true);
    final Context context = getActivity();
    final boolean voiceCapable = Utils.isVoiceCapable(context);
    final ArrayList<Integer> missingIcons = new ArrayList<>();
    final ArrayList<UserPreference> userPreferences = new ArrayList<>();
    int guestId = UserPreference.USERID_GUEST_DEFAULTS;
    userPreferences.add(mMePreference);
    for (UserInfo user : users) {
        if (!user.supportsSwitchToByUser()) {
            // e.g. Managed profiles appear under Accounts Settings instead
            continue;
        }
        UserPreference pref;
        if (user.id == UserHandle.myUserId()) {
            pref = mMePreference;
        } else if (user.isGuest()) {
            // Skip over Guest. We add generic Guest settings after this loop
            guestId = user.id;
            continue;
        } else {
            // With Telephony:
            // Secondary user: Settings
            // Guest: Settings
            // Restricted Profile: There is no Restricted Profile
            // Without Telephony:
            // Secondary user: Delete
            // Guest: Nothing
            // Restricted Profile: Settings
            final boolean showSettings = mUserCaps.mIsAdmin && (voiceCapable || user.isRestricted());
            final boolean showDelete = mUserCaps.mIsAdmin && (!voiceCapable && !user.isRestricted() && !user.isGuest());
            pref = new UserPreference(getPrefContext(), null, user.id, showSettings ? this : null, showDelete ? this : null);
            pref.setKey("id=" + user.id);
            userPreferences.add(pref);
            if (user.isAdmin()) {
                pref.setSummary(R.string.user_admin);
            }
            pref.setTitle(user.name);
            pref.setSelectable(false);
        }
        if (pref == null) {
            continue;
        }
        if (!isInitialized(user)) {
            if (user.isRestricted()) {
                pref.setSummary(R.string.user_summary_restricted_not_set_up);
            } else {
                pref.setSummary(R.string.user_summary_not_set_up);
            }
            pref.setOnPreferenceClickListener(this);
            pref.setSelectable(true);
        } else if (user.isRestricted()) {
            pref.setSummary(R.string.user_summary_restricted_profile);
        }
        if (user.iconPath != null) {
            if (mUserIcons.get(user.id) == null) {
                // Icon not loaded yet, print a placeholder
                missingIcons.add(user.id);
                pref.setIcon(getEncircledDefaultIcon());
            } else {
                setPhotoId(pref, user);
            }
        } else {
            // Icon not available yet, print a placeholder
            pref.setIcon(getEncircledDefaultIcon());
        }
    }
    // Add a temporary entry for the user being created
    if (mAddingUser) {
        UserPreference pref = new UserPreference(getPrefContext(), null, UserPreference.USERID_UNKNOWN, null, null);
        pref.setEnabled(false);
        pref.setTitle(mAddingUserName);
        pref.setIcon(getEncircledDefaultIcon());
        userPreferences.add(pref);
    }
    // Check if Guest tile should be added.
    if (!mUserCaps.mIsGuest && (mUserCaps.mCanAddGuest || mUserCaps.mDisallowAddUserSetByAdmin)) {
        // Add a virtual Guest user for guest defaults
        UserPreference pref = new UserPreference(getPrefContext(), null, UserPreference.USERID_GUEST_DEFAULTS, mUserCaps.mIsAdmin && voiceCapable ? this : null, /* settings icon handler */
        null);
        pref.setTitle(R.string.user_guest);
        pref.setIcon(getEncircledDefaultIcon());
        userPreferences.add(pref);
        pref.setDisabledByAdmin(mUserCaps.mDisallowAddUser ? mUserCaps.mEnforcedAdmin : null);
        int finalGuestId = guestId;
        pref.setOnPreferenceClickListener(preference -> {
            int id = finalGuestId;
            if (id == UserPreference.USERID_GUEST_DEFAULTS) {
                UserInfo guest = mUserManager.createGuest(getContext(), preference.getTitle().toString());
                if (guest != null) {
                    id = guest.id;
                }
            }
            try {
                ActivityManager.getService().switchUser(id);
            } catch (RemoteException e) {
                e.rethrowFromSystemServer();
            }
            return true;
        });
    }
    // Sort list of users by serialNum
    Collections.sort(userPreferences, UserPreference.SERIAL_NUMBER_COMPARATOR);
    getActivity().invalidateOptionsMenu();
    // Load the icons
    if (missingIcons.size() > 0) {
        loadIconsAsync(missingIcons);
    }
    PreferenceScreen preferenceScreen = getPreferenceScreen();
    preferenceScreen.removeAll();
    // If profiles are supported, userPreferences will be added to the category labeled
    // "User & Profiles", otherwise the category is skipped and elements are added directly
    // to preferenceScreen
    PreferenceGroup groupToAddUsers;
    if (mUserCaps.mCanAddRestrictedProfile) {
        mUserListCategory.removeAll();
        mUserListCategory.setOrder(Preference.DEFAULT_ORDER);
        preferenceScreen.addPreference(mUserListCategory);
        groupToAddUsers = mUserListCategory;
    } else {
        groupToAddUsers = preferenceScreen;
    }
    for (UserPreference userPreference : userPreferences) {
        userPreference.setOrder(Preference.DEFAULT_ORDER);
        groupToAddUsers.addPreference(userPreference);
    }
    // Append Add user to the end of the list
    if ((mUserCaps.mCanAddUser || mUserCaps.mDisallowAddUserSetByAdmin) && Utils.isDeviceProvisioned(getActivity())) {
        boolean moreUsers = mUserManager.canAddMoreUsers();
        mAddUser.setOrder(Preference.DEFAULT_ORDER);
        preferenceScreen.addPreference(mAddUser);
        mAddUser.setEnabled(moreUsers && !mAddingUser);
        if (!moreUsers) {
            mAddUser.setSummary(getString(R.string.user_add_max_count, getMaxRealUsers()));
        } else {
            mAddUser.setSummary(null);
        }
        if (mAddUser.isEnabled()) {
            mAddUser.setDisabledByAdmin(mUserCaps.mDisallowAddUser ? mUserCaps.mEnforcedAdmin : null);
        }
    }
}
Also used : Context(android.content.Context) PreferenceScreen(android.support.v7.preference.PreferenceScreen) ArrayList(java.util.ArrayList) UserInfo(android.content.pm.UserInfo) PreferenceGroup(android.support.v7.preference.PreferenceGroup) RemoteException(android.os.RemoteException)

Example 37 with END

use of android.support.v7.widget.helper.ItemTouchHelper.END in project sbt-android by scala-android.

the class HomeActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    ButterKnife.bind(this);
    drawer.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
    // toolbar.inflateMenu(R.menu.main);
    setActionBar(toolbar);
    if (savedInstanceState == null) {
        animateToolbar();
    }
    dribbblePrefs = DribbblePrefs.get(this);
    designerNewsPrefs = DesignerNewsPrefs.get(this);
    filtersAdapter = new FilterAdapter(this, SourceManager.getSources(this), new FilterAdapter.FilterAuthoriser() {

        @Override
        public void requestDribbbleAuthorisation(View sharedElemeent, Source forSource) {
            Intent login = new Intent(HomeActivity.this, DribbbleLogin.class);
            login.putExtra(FabDialogMorphSetup.EXTRA_SHARED_ELEMENT_START_COLOR, ContextCompat.getColor(HomeActivity.this, R.color.background_dark));
            ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(HomeActivity.this, sharedElemeent, getString(R.string.transition_dribbble_login));
            startActivityForResult(login, getAuthSourceRequestCode(forSource), options.toBundle());
        }
    });
    dataManager = new DataManager(this, filtersAdapter) {

        @Override
        public void onDataLoaded(List<? extends PlaidItem> data) {
            adapter.addAndResort(data);
            checkEmptyState();
        }
    };
    adapter = new FeedAdapter(this, dataManager, columns, PocketUtils.isPocketInstalled(this));
    grid.setAdapter(adapter);
    layoutManager = new GridLayoutManager(this, columns);
    layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {

        @Override
        public int getSpanSize(int position) {
            return adapter.getItemColumnSpan(position);
        }
    });
    grid.setLayoutManager(layoutManager);
    grid.addOnScrollListener(gridScroll);
    grid.addOnScrollListener(new InfiniteScrollListener(layoutManager, dataManager) {

        @Override
        public void onLoadMore() {
            dataManager.loadAllDataSources();
        }
    });
    grid.setHasFixedSize(true);
    // drawer layout treats fitsSystemWindows specially so we have to handle insets ourselves
    drawer.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {

        @Override
        public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {
            // inset the toolbar down by the status bar height
            ViewGroup.MarginLayoutParams lpToolbar = (ViewGroup.MarginLayoutParams) toolbar.getLayoutParams();
            lpToolbar.topMargin += insets.getSystemWindowInsetTop();
            lpToolbar.rightMargin += insets.getSystemWindowInsetRight();
            toolbar.setLayoutParams(lpToolbar);
            // inset the grid top by statusbar+toolbar & the bottom by the navbar (don't clip)
            grid.setPadding(grid.getPaddingLeft(), insets.getSystemWindowInsetTop() + ViewUtils.getActionBarSize(HomeActivity.this), // landscape
            grid.getPaddingRight() + insets.getSystemWindowInsetRight(), grid.getPaddingBottom());
            // inset the fab for the navbar
            ViewGroup.MarginLayoutParams lpFab = (ViewGroup.MarginLayoutParams) fab.getLayoutParams();
            // portrait
            lpFab.bottomMargin += insets.getSystemWindowInsetBottom();
            // landscape
            lpFab.rightMargin += insets.getSystemWindowInsetRight();
            fab.setLayoutParams(lpFab);
            // we place a background behind the status bar to combine with it's semi-transparent
            // color to get the desired appearance.  Set it's height to the status bar height
            View statusBarBackground = findViewById(R.id.status_bar_background);
            FrameLayout.LayoutParams lpStatus = (FrameLayout.LayoutParams) statusBarBackground.getLayoutParams();
            lpStatus.height = insets.getSystemWindowInsetTop();
            statusBarBackground.setLayoutParams(lpStatus);
            // inset the filters list for the status bar / navbar
            // need to set the padding end for landscape case
            final boolean ltr = filtersList.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR;
            filtersList.setPaddingRelative(filtersList.getPaddingStart(), filtersList.getPaddingTop() + insets.getSystemWindowInsetTop(), filtersList.getPaddingEnd() + (ltr ? insets.getSystemWindowInsetRight() : 0), filtersList.getPaddingBottom() + insets.getSystemWindowInsetBottom());
            // clear this listener so insets aren't re-applied
            drawer.setOnApplyWindowInsetsListener(null);
            return insets.consumeSystemWindowInsets();
        }
    });
    setupTaskDescription();
    filtersList.setAdapter(filtersAdapter);
    filtersAdapter.addFilterChangedListener(filtersChangedListener);
    filtersAdapter.addFilterChangedListener(dataManager);
    dataManager.loadAllDataSources();
    ItemTouchHelper.Callback callback = new FilterTouchHelperCallback(filtersAdapter);
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(callback);
    itemTouchHelper.attachToRecyclerView(filtersList);
    checkEmptyState();
    checkConnectivity();
}
Also used : FilterTouchHelperCallback(io.plaidapp.ui.recyclerview.FilterTouchHelperCallback) ViewGroup(android.view.ViewGroup) Intent(android.content.Intent) DataManager(io.plaidapp.data.DataManager) ImageView(android.widget.ImageView) View(android.view.View) TextView(android.widget.TextView) RecyclerView(android.support.v7.widget.RecyclerView) ActionMenuView(android.widget.ActionMenuView) Source(io.plaidapp.data.Source) ItemTouchHelper(android.support.v7.widget.helper.ItemTouchHelper) WindowInsets(android.view.WindowInsets) GridLayoutManager(android.support.v7.widget.GridLayoutManager) FrameLayout(android.widget.FrameLayout) InfiniteScrollListener(io.plaidapp.ui.recyclerview.InfiniteScrollListener) ActivityOptions(android.app.ActivityOptions)

Example 38 with END

use of android.support.v7.widget.helper.ItemTouchHelper.END in project GomoTest by suReZj.

the class EditImageActivity method onBackPressed.

// end inner class
@Override
public void onBackPressed() {
    switch(mode) {
        case MODE_STICKERS:
            mStickerFragment.backToMain(EditImageActivity.this);
            return;
        case // 滤镜编辑状态
        MODE_FILTER:
            // 保存滤镜贴图
            mFilterListFragment.backToMain(EditImageActivity.this);
            return;
        case // 剪切图片保存
        MODE_CROP:
            mCropFragment.backToMain(EditImageActivity.this);
            return;
        case // 旋转图片保存
        MODE_ROTATE:
            mRotateFragment.backToMain(EditImageActivity.this);
            return;
        case MODE_TEXT:
            mAddTextFragment.backToMain(EditImageActivity.this);
            return;
        case MODE_PAINT:
            mPaintFragment.backToMain(EditImageActivity.this);
            return;
        case // 从美颜模式中返回
        MODE_BEAUTY:
            mBeautyFragment.backToMain(EditImageActivity.this);
            return;
    }
    if (canAutoExit()) {
        onSaveTaskDone();
    } else {
        // 图片还未被保存    弹出提示框确认
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
        alertDialogBuilder.setMessage(R.string.exit_without_save).setCancelable(false).setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int id) {
                mContext.finish();
            }
        }).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int id) {
                dialog.cancel();
            }
        });
        AlertDialog alertDialog = alertDialogBuilder.create();
        alertDialog.show();
    }
}
Also used : AlertDialog(android.support.v7.app.AlertDialog) DialogInterface(android.content.DialogInterface) OnClickListener(android.view.View.OnClickListener)

Example 39 with END

use of android.support.v7.widget.helper.ItemTouchHelper.END in project quran_android by quran.

the class PagerActivity method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    QuranApplication quranApp = (QuranApplication) getApplication();
    quranApp.refreshLocale(this, false);
    super.onCreate(savedInstanceState);
    // field injection
    getPagerActivityComponent().inject(this);
    bookmarksCache = new SparseBooleanArray();
    boolean shouldAdjustPageNumber = false;
    isDualPages = QuranUtils.isDualPages(this, quranScreenInfo);
    // remove the window background to avoid overdraw. note that, per Romain's blog, this is
    // acceptable (as long as we don't set the background color to null in the theme, since
    // that is used to generate preview windows).
    getWindow().setBackgroundDrawable(null);
    numberOfPages = quranInfo.getNumberOfPages();
    numberOfPagesDual = quranInfo.getNumberOfPagesDual();
    int page = -1;
    isActionBarHidden = true;
    if (savedInstanceState != null) {
        Timber.d("non-null saved instance state!");
        DownloadAudioRequest lastAudioRequest = savedInstanceState.getParcelable(LAST_AUDIO_DL_REQUEST);
        if (lastAudioRequest != null) {
            Timber.d("restoring request from saved instance!");
            lastAudioDownloadRequest = lastAudioRequest;
        }
        page = savedInstanceState.getInt(LAST_READ_PAGE, -1);
        if (page != -1) {
            page = numberOfPages - page;
        }
        showingTranslation = savedInstanceState.getBoolean(LAST_READING_MODE_IS_TRANSLATION, false);
        if (savedInstanceState.containsKey(LAST_ACTIONBAR_STATE)) {
            isActionBarHidden = !savedInstanceState.getBoolean(LAST_ACTIONBAR_STATE);
        }
        boolean lastWasDualPages = savedInstanceState.getBoolean(LAST_WAS_DUAL_PAGES, isDualPages);
        shouldAdjustPageNumber = (lastWasDualPages != isDualPages);
        start = savedInstanceState.getParcelable(LAST_START_POINT);
        end = savedInstanceState.getParcelable(LAST_ENDING_POINT);
        this.lastAudioRequest = savedInstanceState.getParcelable(LAST_AUDIO_REQUEST);
    } else {
        Intent intent = getIntent();
        Bundle extras = intent.getExtras();
        if (extras != null) {
            page = numberOfPages - extras.getInt("page", Constants.PAGES_FIRST);
            showingTranslation = extras.getBoolean(EXTRA_JUMP_TO_TRANSLATION, showingTranslation);
            highlightedSura = extras.getInt(EXTRA_HIGHLIGHT_SURA, -1);
            highlightedAyah = extras.getInt(EXTRA_HIGHLIGHT_AYAH, -1);
        }
    }
    compositeDisposable = new CompositeDisposable();
    // subscribe to changes in bookmarks
    compositeDisposable.add(bookmarkModel.bookmarksObservable().observeOn(AndroidSchedulers.mainThread()).subscribe(ignore -> {
        onBookmarksChanged();
    }));
    final Resources resources = getResources();
    isImmersiveInPortrait = resources.getBoolean(R.bool.immersive_in_portrait);
    isLandscape = resources.getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
    ayahToolBarTotalHeight = resources.getDimensionPixelSize(R.dimen.toolbar_total_height);
    setContentView(R.layout.quran_page_activity_slider);
    audioStatusBar = (AudioStatusBar) findViewById(R.id.audio_area);
    audioStatusBar.setIsDualPageMode(quranScreenInfo.isDualPageMode());
    audioStatusBar.setQariList(audioUtils.getQariList(this));
    audioStatusBar.setAudioBarListener(this);
    audioBarParams = (ViewGroup.MarginLayoutParams) audioStatusBar.getLayoutParams();
    toolBarArea = findViewById(R.id.toolbar_area);
    translationsSpinner = (QuranSpinner) findViewById(R.id.spinner);
    // this is the colored view behind the status bar on kitkat and above
    final View statusBarBackground = findViewById(R.id.status_bg);
    statusBarBackground.getLayoutParams().height = getStatusBarHeight();
    final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    if (quranSettings.isArabicNames() || QuranUtils.isRtl()) {
        // remove when we remove LTR from quran_page_activity's root
        ViewCompat.setLayoutDirection(toolbar, ViewCompat.LAYOUT_DIRECTION_RTL);
    }
    setSupportActionBar(toolbar);
    final ActionBar ab = getSupportActionBar();
    if (ab != null) {
        ab.setDisplayShowHomeEnabled(true);
        ab.setDisplayHomeAsUpEnabled(true);
    }
    initAyahActionPanel();
    if (showingTranslation && translationItems != null) {
        updateActionBarSpinner();
    } else {
        updateActionBarTitle(numberOfPages - page);
    }
    lastPopupTime = System.currentTimeMillis();
    pagerAdapter = new QuranPageAdapter(getSupportFragmentManager(), isDualPages, showingTranslation, quranInfo);
    ayahToolBar = (AyahToolBar) findViewById(R.id.ayah_toolbar);
    final NonRestoringViewPager nonRestoringViewPager = findViewById(R.id.quran_pager);
    nonRestoringViewPager.setIsDualPagesInLandscape(QuranUtils.isDualPagesInLandscape(this, quranScreenInfo));
    viewPager = nonRestoringViewPager;
    viewPager.setAdapter(pagerAdapter);
    ayahToolBar.setOnItemSelectedListener(new AyahMenuItemSelectionHandler());
    viewPager.addOnPageChangeListener(new OnPageChangeListener() {

        @Override
        public void onPageScrollStateChanged(int state) {
        }

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            if (ayahToolBar.isShowing() && ayahToolBarPos != null) {
                final int startPage = quranInfo.getPageFromSuraAyah(start.sura, start.ayah);
                int barPos = quranInfo.getPosFromPage(startPage, isDualPages);
                if (position == barPos) {
                    // Swiping to next ViewPager page (i.e. prev quran page)
                    ayahToolBarPos.xScroll = 0 - positionOffsetPixels;
                } else if (position == barPos - 1) {
                    // Swiping to prev ViewPager page (i.e. next quran page)
                    ayahToolBarPos.xScroll = viewPager.getWidth() - positionOffsetPixels;
                } else {
                    // Totally off screen, should hide toolbar
                    ayahToolBar.setVisibility(View.GONE);
                    return;
                }
                ayahToolBar.updatePosition(ayahToolBarPos);
                // If the toolbar is not showing, show it
                if (ayahToolBar.getVisibility() != View.VISIBLE) {
                    ayahToolBar.setVisibility(View.VISIBLE);
                }
            }
        }

        @Override
        public void onPageSelected(int position) {
            Timber.d("onPageSelected(): %d", position);
            final int page = quranInfo.getPageFromPos(position, isDualPages);
            if (quranSettings.shouldDisplayMarkerPopup()) {
                lastPopupTime = QuranDisplayHelper.displayMarkerPopup(PagerActivity.this, quranInfo, page, lastPopupTime);
                if (isDualPages) {
                    lastPopupTime = QuranDisplayHelper.displayMarkerPopup(PagerActivity.this, quranInfo, page - 1, lastPopupTime);
                }
            }
            if (!showingTranslation) {
                updateActionBarTitle(page);
            } else {
                refreshActionBarSpinner();
            }
            if (bookmarksCache.indexOfKey(page) < 0) {
                if (isDualPages) {
                    if (bookmarksCache.indexOfKey(page - 1) < 0) {
                        checkIfPageIsBookmarked(page - 1, page);
                    }
                } else {
                    // we don't have the key
                    checkIfPageIsBookmarked(page);
                }
            }
            // If we're more than 1 page away from ayah selection end ayah mode
            if (isInAyahMode) {
                final int startPage = quranInfo.getPageFromSuraAyah(start.sura, start.ayah);
                int ayahPos = quranInfo.getPosFromPage(startPage, isDualPages);
                if (Math.abs(ayahPos - position) > 1) {
                    endAyahMode();
                }
            }
        }
    });
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        setUiVisibilityListener();
        audioStatusBar.setVisibility(View.VISIBLE);
    }
    toggleActionBarVisibility(true);
    if (shouldAdjustPageNumber) {
        // when going from two page per screen to one or vice versa, we adjust the page number,
        // such that the first page is always selected.
        int curPage = numberOfPages - page;
        if (isDualPages) {
            if (curPage % 2 != 0) {
                curPage++;
            }
            curPage = numberOfPagesDual - (curPage / 2);
        } else {
            if (curPage % 2 == 0) {
                curPage--;
            }
            curPage = numberOfPages - curPage;
        }
        page = curPage;
    } else if (isDualPages) {
        page = page / 2;
    }
    viewPager.setCurrentItem(page);
    // just got created, need to reconnect to service
    shouldReconnect = true;
    // enforce orientation lock
    if (quranSettings.isLockOrientation()) {
        int current = getResources().getConfiguration().orientation;
        if (quranSettings.isLandscapeOrientation()) {
            if (current == Configuration.ORIENTATION_PORTRAIT) {
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
                return;
            }
        } else if (current == Configuration.ORIENTATION_LANDSCAPE) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            return;
        }
    }
    LocalBroadcastManager.getInstance(this).registerReceiver(audioReceiver, new IntentFilter(AudioService.AudioUpdateIntent.INTENT_NAME));
    downloadReceiver = new DefaultDownloadReceiver(this, QuranDownloadService.DOWNLOAD_TYPE_AUDIO);
    String action = QuranDownloadNotifier.ProgressIntent.INTENT_NAME;
    LocalBroadcastManager.getInstance(this).registerReceiver(downloadReceiver, new IntentFilter(action));
    downloadReceiver.setListener(this);
}
Also used : Bundle(android.os.Bundle) AUDIO_PAGE(com.quran.labs.androidquran.ui.helpers.SlidingPagerAdapter.AUDIO_PAGE) AyahInfoDatabaseProvider(com.quran.labs.androidquran.data.AyahInfoDatabaseProvider) QuranSpinner(com.quran.labs.androidquran.widgets.QuranSpinner) AyahToolBar(com.quran.labs.androidquran.widgets.AyahToolBar) QuranPageAdapter(com.quran.labs.androidquran.ui.helpers.QuranPageAdapter) OnPageChangeListener(android.support.v4.view.ViewPager.OnPageChangeListener) Handler(android.os.Handler) TranslationsDBAdapter(com.quran.labs.androidquran.database.TranslationsDBAdapter) TargetApi(android.annotation.TargetApi) AudioStatusBar(com.quran.labs.androidquran.widgets.AudioStatusBar) TabletFragment(com.quran.labs.androidquran.ui.fragment.TabletFragment) IntentFilter(android.content.IntentFilter) Fragment(android.support.v4.app.Fragment) Set(java.util.Set) PagerActivityComponent(com.quran.labs.androidquran.component.activity.PagerActivityComponent) QuranScreenInfo(com.quran.labs.androidquran.util.QuranScreenInfo) HelpActivity(com.quran.labs.androidquran.HelpActivity) HapticFeedbackConstants(android.view.HapticFeedbackConstants) NonRestoringViewPager(android.support.v4.view.NonRestoringViewPager) Message(android.os.Message) DisposableObserver(io.reactivex.observers.DisposableObserver) TranslationsSpinnerAdapter(com.quran.labs.androidquran.ui.util.TranslationsSpinnerAdapter) QariItem(com.quran.labs.androidquran.common.QariItem) DisposableSingleObserver(io.reactivex.observers.DisposableSingleObserver) TAG_PAGE(com.quran.labs.androidquran.ui.helpers.SlidingPagerAdapter.TAG_PAGE) QuranDownloadService(com.quran.labs.androidquran.service.QuranDownloadService) NonNull(android.support.annotation.NonNull) AudioUtils(com.quran.labs.androidquran.util.AudioUtils) StreamingAudioRequest(com.quran.labs.androidquran.service.util.StreamingAudioRequest) BookmarkModel(com.quran.labs.androidquran.model.bookmark.BookmarkModel) QuranDataProvider(com.quran.labs.androidquran.data.QuranDataProvider) MenuInflater(android.view.MenuInflater) Toast(android.widget.Toast) Menu(android.view.Menu) QuranFileUtils(com.quran.labs.androidquran.util.QuranFileUtils) Observable(io.reactivex.Observable) SearchActivity(com.quran.labs.androidquran.SearchActivity) ComponentName(android.content.ComponentName) QuranDownloadNotifier(com.quran.labs.androidquran.service.util.QuranDownloadNotifier) TRANSLATION_PAGE(com.quran.labs.androidquran.ui.helpers.SlidingPagerAdapter.TRANSLATION_PAGE) ProgressDialog(android.app.ProgressDialog) TextUtils(android.text.TextUtils) QuranApplication(com.quran.labs.androidquran.QuranApplication) File(java.io.File) FragmentManager(android.support.v4.app.FragmentManager) AlertDialog(android.support.v7.app.AlertDialog) SparseBooleanArray(android.util.SparseBooleanArray) SharedPreferences(android.content.SharedPreferences) Toolbar(android.support.v7.widget.Toolbar) Configuration(android.content.res.Configuration) QuranPreferenceActivity(com.quran.labs.androidquran.QuranPreferenceActivity) DownloadAudioRequest(com.quran.labs.androidquran.service.util.DownloadAudioRequest) SearchView(android.support.v7.widget.SearchView) Constants(com.quran.labs.androidquran.data.Constants) WindowManager(android.view.WindowManager) ShareUtil(com.quran.labs.androidquran.util.ShareUtil) LocalBroadcastManager(android.support.v4.content.LocalBroadcastManager) AndroidSchedulers(io.reactivex.android.schedulers.AndroidSchedulers) AddTagDialog(com.quran.labs.androidquran.ui.fragment.AddTagDialog) HighlightType(com.quran.labs.androidquran.ui.helpers.HighlightType) AyahSelectedListener(com.quran.labs.androidquran.ui.helpers.AyahSelectedListener) ActivityInfo(android.content.pm.ActivityInfo) R(com.quran.labs.androidquran.R) View(android.view.View) Schedulers(io.reactivex.schedulers.Schedulers) ViewCompat(android.support.v4.view.ViewCompat) QuranAppUtils(com.quran.labs.androidquran.util.QuranAppUtils) PreferenceManager(android.preference.PreferenceManager) AyahToolBarPosition(com.quran.labs.androidquran.widgets.AyahToolBar.AyahToolBarPosition) SlidingUpPanelLayout(com.quran.labs.androidquran.widgets.SlidingUpPanelLayout) AudioRequest(com.quran.labs.androidquran.service.util.AudioRequest) AyahActionFragment(com.quran.labs.androidquran.ui.fragment.AyahActionFragment) AudioService(com.quran.labs.androidquran.service.AudioService) MenuItemCompat(android.support.v4.view.MenuItemCompat) LocalTranslation(com.quran.labs.androidquran.common.LocalTranslation) QuranDisplayHelper(com.quran.labs.androidquran.ui.helpers.QuranDisplayHelper) BroadcastReceiver(android.content.BroadcastReceiver) ViewGroup(android.view.ViewGroup) Timber(timber.log.Timber) PAGES(com.quran.labs.androidquran.ui.helpers.SlidingPagerAdapter.PAGES) List(java.util.List) CompositeDisposable(io.reactivex.disposables.CompositeDisposable) QuranInfo(com.quran.labs.androidquran.data.QuranInfo) DefaultDownloadReceiver(com.quran.labs.androidquran.service.util.DefaultDownloadReceiver) TranslationFragment(com.quran.labs.androidquran.ui.fragment.TranslationFragment) Nullable(android.support.annotation.Nullable) SearchManager(android.app.SearchManager) RecentPagePresenter(com.quran.labs.androidquran.presenter.bookmark.RecentPagePresenter) Context(android.content.Context) ArabicDatabaseUtils(com.quran.labs.androidquran.model.translation.ArabicDatabaseUtils) KeyEvent(android.view.KeyEvent) JumpFragment(com.quran.labs.androidquran.ui.fragment.JumpFragment) ViewPager(android.support.v4.view.ViewPager) ServiceIntentHelper(com.quran.labs.androidquran.service.util.ServiceIntentHelper) Intent(android.content.Intent) QuranUtils(com.quran.labs.androidquran.util.QuranUtils) Single(io.reactivex.Single) MenuItem(android.view.MenuItem) IconPageIndicator(com.quran.labs.androidquran.widgets.IconPageIndicator) HashSet(java.util.HashSet) Inject(javax.inject.Inject) TagBookmarkDialog(com.quran.labs.androidquran.ui.fragment.TagBookmarkDialog) SuraAyah(com.quran.labs.androidquran.data.SuraAyah) QuranSettings(com.quran.labs.androidquran.util.QuranSettings) Build(android.os.Build) WeakReference(java.lang.ref.WeakReference) ActionBar(android.support.v7.app.ActionBar) SlidingPagerAdapter(com.quran.labs.androidquran.ui.helpers.SlidingPagerAdapter) QuranPageWorker(com.quran.labs.androidquran.ui.helpers.QuranPageWorker) QuranPage(com.quran.labs.androidquran.ui.helpers.QuranPage) AyahTracker(com.quran.labs.androidquran.ui.helpers.AyahTracker) JumpDestination(com.quran.labs.androidquran.ui.helpers.JumpDestination) Pair(android.support.v4.util.Pair) PagerActivityModule(com.quran.labs.androidquran.module.activity.PagerActivityModule) Resources(android.content.res.Resources) IntentFilter(android.content.IntentFilter) Bundle(android.os.Bundle) ViewGroup(android.view.ViewGroup) OnPageChangeListener(android.support.v4.view.ViewPager.OnPageChangeListener) Intent(android.content.Intent) SearchView(android.support.v7.widget.SearchView) View(android.view.View) QuranApplication(com.quran.labs.androidquran.QuranApplication) NonRestoringViewPager(android.support.v4.view.NonRestoringViewPager) DefaultDownloadReceiver(com.quran.labs.androidquran.service.util.DefaultDownloadReceiver) SparseBooleanArray(android.util.SparseBooleanArray) QuranPageAdapter(com.quran.labs.androidquran.ui.helpers.QuranPageAdapter) DownloadAudioRequest(com.quran.labs.androidquran.service.util.DownloadAudioRequest) Resources(android.content.res.Resources) CompositeDisposable(io.reactivex.disposables.CompositeDisposable) ActionBar(android.support.v7.app.ActionBar) Toolbar(android.support.v7.widget.Toolbar)

Example 40 with END

use of android.support.v7.widget.helper.ItemTouchHelper.END in project Detours-Android by TeamDetours.

the class Edit_Profile_Activity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.content_edit__profile_);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    // Initialize the variables
    ProfilePic = (ImageView) findViewById(R.id.ProfilePic);
    ChangePicBTN = (Button) findViewById(R.id.EditPic);
    LastnameEditIBTN = (ImageButton) findViewById(R.id.LastnameEditIBTN);
    LastnameViewSwitcher = (ViewSwitcher) findViewById(R.id.LastNameSwitcher);
    LastnameTV = (TextView) findViewById(R.id.LastnameTV);
    LastNameEditableTXT = (EditText) findViewById(R.id.LastNameEditTXT);
    EmailViewSwitcher = (ViewSwitcher) findViewById(R.id.EmailSwitcher);
    EmailEditIBTN = (ImageButton) findViewById(R.id.EmailEditIBTN);
    EmailTV = (TextView) findViewById(R.id.EmailTV);
    EmailEditableTXT = (EditText) findViewById(R.id.EmailEditTXT);
    FirstnameEditIBTN = (ImageButton) findViewById(R.id.FirstnameEditIBTN);
    FirstnameSwitcher = (ViewSwitcher) findViewById(R.id.FirstNameSwitcher);
    FirstnameTV = (TextView) findViewById(R.id.FirstnameTV);
    FirstNameEditableTXT = (EditText) findViewById(R.id.FirstNameEditTXT);
    btnUpdateProfile = (Button) findViewById(R.id.btnUpdateProfile);
    // Disable the register button until all fields are not empty and have changed
    btnUpdateProfile.setEnabled(false);
    // Get the shared preferences of the users and file page to image
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
    m_path = settings.getString("filepath", m_path);
    // Load file path if not null
    if (m_path != null) {
        Picasso.with(Edit_Profile_Activity.this).load(m_path).noPlaceholder().centerCrop().fit().into(ProfilePic);
    }
    // Option to change the users photo
    ChangePicBTN.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);
        }
    });
    // Set users first name programmatically by retrieving value from profile page (getIntent())
    // Do not override retrieved values upon editing
    // We will retrieve values for username, fname, lname, and email from profile activity
    // because that activity will make a call to the server to get user data.
    Bundle currentUserProfileData = getIntent().getExtras();
    if (currentUserProfileData != null) {
        fname = currentUserProfileData.getString("Fname");
        lname = currentUserProfileData.getString("Lname");
        email = currentUserProfileData.getString("Email");
    } else {
        // Display this error if connection to server breaks for some odd reason before updating
        Toast.makeText(Edit_Profile_Activity.this, "An unexpected error has occurred.", Toast.LENGTH_LONG).show();
        Intent intent = new Intent(Edit_Profile_Activity.this, Profile_Activity.class);
        startActivity(intent);
    }
    FirstnameTV.setText(fname);
    FirstNameEditableTXT.setText(fname);
    // Set users last name programmatically by retrieving value from profile page (getIntent())
    LastnameTV.setText(lname);
    LastNameEditableTXT.setText(lname);
    // Set users email programmatically by retrieving value from profile page (getIntent())
    EmailTV.setText(email);
    EmailEditableTXT.setText(email);
    // Make sure that if the user is editing, do not allow them to update profile if field is empty
    FirstNameEditableTXT.addTextChangedListener(new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            isFieldsEmpty();
        }

        @Override
        public void afterTextChanged(Editable editable) {
        }
    });
    LastNameEditableTXT.addTextChangedListener(new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            isFieldsEmpty();
        }

        @Override
        public void afterTextChanged(Editable editable) {
        }
    });
    EmailEditableTXT.addTextChangedListener(new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            isFieldsEmpty();
        }

        @Override
        public void afterTextChanged(Editable editable) {
        }
    });
    // Declare variable to manage the virtual keyboard on UI
    final InputMethodManager keyboard = (InputMethodManager) this.getSystemService((Service.INPUT_METHOD_SERVICE));
    // This will handle the actions for the users first name with two different views
    FirstnameEditIBTN.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (FirstnameSwitcher.getCurrentView() != FirstNameEditableTXT) {
                // Display the edit view and set check mark.
                FirstnameSwitcher.showNext();
                FirstnameEditIBTN.setImageResource(R.drawable.checkmark);
                // Ensure virtual keyboard is enabled and focused at end of input field
                keyboard.showSoftInput(FirstNameEditableTXT, 0);
                FirstNameEditableTXT.requestFocus(FirstNameEditableTXT.getText().length());
                FirstNameEditableTXT.setSelection(FirstNameEditableTXT.getText().length());
            } else {
                // Display the text view and set edit symbol
                FirstnameSwitcher.showPrevious();
                FirstnameEditIBTN.setImageResource(R.drawable.editsym);
                // Display the info
                FirstnameTV.setText(FirstNameEditableTXT.getText().toString());
                // Update users first name to be sent to server to update DB
                fnameEdit = FirstNameEditableTXT.getText().toString();
                // Ensure user cant accidentally change input if virtual keyboard is still enabled
                keyboard.hideSoftInputFromWindow(FirstNameEditableTXT.getWindowToken(), 0);
            }
        }
    });
    // This will handle the actions for the users last name with two different views
    LastnameEditIBTN.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (LastnameViewSwitcher.getCurrentView() != LastNameEditableTXT) {
                // Display the edit view and set check mark.
                LastnameViewSwitcher.showNext();
                LastnameEditIBTN.setImageResource(R.drawable.checkmark);
                // Ensure virtual keyboard is enabled and focused on the input field
                keyboard.showSoftInput(LastNameEditableTXT, 0);
                LastNameEditableTXT.requestFocus(LastNameEditableTXT.getText().length());
                LastNameEditableTXT.setSelection(LastNameEditableTXT.getText().length());
            } else {
                // Display the text view and set edit symbol
                LastnameViewSwitcher.showPrevious();
                LastnameEditIBTN.setImageResource(R.drawable.editsym);
                // Display the info
                LastnameTV.setText(LastNameEditableTXT.getText().toString());
                // Update users last name to be sent to server to update DB
                lnameEdit = LastNameEditableTXT.getText().toString();
                // Ensure user cant accidentally change input if virtual keyboard is still enabled
                keyboard.hideSoftInputFromWindow(LastNameEditableTXT.getWindowToken(), 0);
            }
        }
    });
    // This will handle the actions for the users email with two different views
    EmailEditIBTN.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (EmailViewSwitcher.getCurrentView() != EmailEditableTXT) {
                // Display the edit view and set check mark.
                EmailViewSwitcher.showNext();
                EmailEditIBTN.setImageResource(R.drawable.checkmark);
                // Ensure virtual keyboard is enabled and focused on the input field
                keyboard.showSoftInput(EmailEditableTXT, 0);
                EmailEditableTXT.requestFocus(EmailEditableTXT.getText().length());
                EmailEditableTXT.setSelection(EmailEditableTXT.getText().length());
            } else {
                // Display the text view and set edit symbol
                EmailViewSwitcher.showPrevious();
                EmailEditIBTN.setImageResource(R.drawable.editsym);
                // Display the info
                EmailTV.setText(EmailEditableTXT.getText().toString());
                // Update users email to be sent to server to update DB
                emailEdit = EmailEditableTXT.getText().toString();
                // Ensure user cant accidentally change input if virtual keyboard is still enabled
                keyboard.hideSoftInputFromWindow(EmailEditableTXT.getWindowToken(), 0);
            }
        }
    });
    // Access shared preferences to get the consumers username
    SharedPreferences usernameCredential = getSharedPreferences("Profile Preferences", Context.MODE_PRIVATE);
    username = usernameCredential.getString(getString(R.string.saved_username_key), null);
    /**
     ********************************************************************
     * Purpose: This function handles a click on the "Update Profile" button
     * and sends the user data to the server to connect to the database in
     * order to update the user's information.
     *
     * Pre-condition: User does not make changes(click not handled).
     *
     * Post-condition: User makes changes (click handled).
     ***********************************************************************
     */
    btnUpdateProfile.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            fnameEdit = FirstNameEditableTXT.getText().toString();
            lnameEdit = LastNameEditableTXT.getText().toString();
            emailEdit = EmailEditableTXT.getText().toString();
            new UpdateUser().execute("http://detours.us-west-2.elasticbeanstalk.com/Service1.svc/UpdateUser");
        }
    });
}
Also used : SharedPreferences(android.content.SharedPreferences) Bundle(android.os.Bundle) Intent(android.content.Intent) InputMethodManager(android.view.inputmethod.InputMethodManager) ImageView(android.widget.ImageView) View(android.view.View) TextView(android.widget.TextView) TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) Toolbar(android.support.v7.widget.Toolbar)

Aggregations

View (android.view.View)129 RecyclerView (android.support.v7.widget.RecyclerView)113 TextView (android.widget.TextView)35 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)25 ImageView (android.widget.ImageView)20 ArrayList (java.util.ArrayList)19 SuppressLint (android.annotation.SuppressLint)15 Intent (android.content.Intent)15 ViewGroup (android.view.ViewGroup)13 DialogInterface (android.content.DialogInterface)12 PreferenceScreen (android.support.v7.preference.PreferenceScreen)11 Toolbar (android.support.v7.widget.Toolbar)11 AdapterView (android.widget.AdapterView)11 OrientationHelperEx (com.alibaba.android.vlayout.OrientationHelperEx)10 List (java.util.List)10 AlertDialog (android.support.v7.app.AlertDialog)9 Context (android.content.Context)8 ActionBar (android.support.v7.app.ActionBar)8 ListView (android.widget.ListView)8 VirtualLayoutManager (com.alibaba.android.vlayout.VirtualLayoutManager)8