use of android.support.v7.widget.helper.ItemTouchHelper.START in project Collar by CodeZsx.
the class DirectMsgActivity method initView.
@Override
public void initView() {
EventBusUtils.register(this);
// 获取intent传递过来的uid,screen_name
mUid = getIntent().getStringExtra(INTENT_UID);
mScreenName = getIntent().getStringExtra(INTENT_SCREEN_NAME);
setToolbarTitle(mBinding.toolbar, mScreenName);
mAdapter = new DirectMsgConversationAdapter(this);
mAdapter.setUid(AccessTokenKeeper.getInstance().getUid());
mBinding.recyclerView.setAdapter(mAdapter);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, true);
mBinding.recyclerView.setLayoutManager(linearLayoutManager);
// 设置edittext
mBinding.etContent.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if ("".equals(s.toString())) {
mBinding.ivCommit.setSelected(false);
} else {
mBinding.ivCommit.setSelected(true);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
// 设置表情界面
EmojiFragment emojiFragment = new EmojiFragment();
getSupportFragmentManager().beginTransaction().add(R.id.rl_additional, emojiFragment).show(emojiFragment).commit();
emojiFragment.addOnEmojiClickListener(new EmojiFragment.OnEmojiClickListener() {
@Override
public void onEmojiDelete() {
L.e("delete");
}
@Override
public void onEmojiClick(Emoji emoji) {
// TODO:增加表情转化功能
// mBinding.etContent.setText(EmojiUtil.transEmoji(mBinding.etContent.getText().toString() + emoji.getContent(), DirectMsgActivity.this));
mBinding.etContent.setText(mBinding.etContent.getText().toString() + emoji.getContent());
mBinding.etContent.setSelection(mBinding.etContent.getText().length());
}
});
// 当软键盘呼出时,关闭表情界面
getWindow().getDecorView().addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
int oldRectBottom = 0;
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
// 获取View可见区域的bottom
Rect rect = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
// 界面收缩即软键盘正在打开
if (rect.bottom - oldRectBottom < 0) {
mBinding.rlAdditional.postDelayed(new Runnable() {
@Override
public void run() {
mBinding.rlAdditional.setVisibility(View.GONE);
mBinding.ivEmoj.setSelected(false);
}
}, 10);
} else if (rect.bottom - oldRectBottom > 0) {
// 界面扩展即软键盘正在关闭
}
oldRectBottom = rect.bottom;
}
});
mBinding.ivCommit.setOnClickListener(this);
mBinding.ivEmoj.setOnClickListener(this);
// mBinding.getRoot().addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
// @Override
// public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
// //获取View可见区域的bottom
// Rect rect = new Rect();
// getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
// if(bottom!=0 && oldBottom!=0 && bottom - rect.bottom <= 0){
// L.e("keboard close");
// }else {
// mBinding.rlAdditional.setVisibility(View.GONE);
// mBinding.ivEmoj.setSelected(false);
// L.e("keyboard open");
// }
// }
// });
loadData();
}
use of android.support.v7.widget.helper.ItemTouchHelper.START in project GomoTest by suReZj.
the class SelectActivity method getData.
public void getData() {
final List<AlbumBean> list = new ArrayList<>();
allPhotosTemp = new HashMap<>();
albumName = new ArrayList<>();
new Thread(new Runnable() {
@Override
public void run() {
String[] projImage = { MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA, MediaStore.Images.Media.SIZE, MediaStore.Images.Media.DISPLAY_NAME };
Cursor mCursor = getContentResolver().query(mImageUri, projImage, MediaStore.Images.Media.MIME_TYPE + "=? or " + MediaStore.Images.Media.MIME_TYPE + "=? or " + MediaStore.Images.Media.MIME_TYPE + "=? or " + MediaStore.Images.Media.MIME_TYPE + "=?", new String[] { "image/jpeg", "image/png", "image/jpg", "image/bmp" }, MediaStore.Images.Media.DATE_MODIFIED + " desc");
if (mCursor != null) {
while (mCursor.moveToNext()) {
// 获取图片的路径
String path = mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media.DATA));
int size = mCursor.getInt(mCursor.getColumnIndex(MediaStore.Images.Media.SIZE)) / 1024;
String displayName = mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));
// 用于展示相册初始化界面
mediaBeen.add(new MediaBean(path, size, displayName));
// 获取该图片的父路径名
String dirPath = new File(path).getParentFile().getAbsolutePath();
// 存储对应关系
AlbumBean bean = new AlbumBean();
if (allPhotosTemp.containsKey(dirPath)) {
List<MediaBean> data = allPhotosTemp.get(dirPath);
data.add(new MediaBean(path, size, displayName));
bean.setAlbumName(dirPath);
bean.setPath(path);
list.add(bean);
continue;
} else {
albumName.add(dirPath);
List<MediaBean> data = new ArrayList<>();
data.add(new MediaBean(path, size, displayName));
allPhotosTemp.put(dirPath, data);
bean.setAlbumName(dirPath);
bean.setPath(path);
list.add(bean);
}
}
mCursor.close();
}
// 更新界面
runOnUiThread(new Runnable() {
@Override
public void run() {
adapter = new select_recycle_adapter(allPhotosTemp, albumName);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(SelectActivity.this));
DataSupport.deleteAll(AlbumBean.class);
DataSupport.saveAllAsync(list).listen(new SaveCallback() {
@Override
public void onFinish(boolean success) {
if (flag) {
EventBus.getDefault().post(event);
flag = false;
}
}
});
adapter.setOnItemClickLitener(new select_recycle_adapter.OnItemClickLitener() {
@Override
public void onItemClick(View view, int position) {
Intent intent = new Intent(SelectActivity.this, AlbumActivity.class);
String name = albumName.get(position);
intent.putExtra("name", name);
startActivity(intent);
}
@Override
public void onItemLongClick(View view, int position) {
}
});
}
});
}
}).start();
}
use of android.support.v7.widget.helper.ItemTouchHelper.START in project VirtualXposed by android-hacker.
the class ListAppFragment method onViewCreated.
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
mRecyclerView = (DragSelectRecyclerView) view.findViewById(R.id.select_app_recycler_view);
mProgressBar = (ProgressBar) view.findViewById(R.id.select_app_progress_bar);
mInstallButton = (Button) view.findViewById(R.id.select_app_install_btn);
mSelectFromExternal = view.findViewById(R.id.select_app_from_external);
mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(1, OrientationHelper.VERTICAL));
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL);
dividerItemDecoration.setDrawable(new ColorDrawable(0x1f000000));
mRecyclerView.addItemDecoration(dividerItemDecoration);
mAdapter = new CloneAppListAdapter(getActivity());
mRecyclerView.setAdapter(mAdapter);
mAdapter.setOnItemClickListener(new CloneAppListAdapter.ItemEventListener() {
@Override
public void onItemClick(AppInfo info, int position) {
int count = mAdapter.getSelectedCount();
if (!mAdapter.isIndexSelected(position)) {
if (count >= 9) {
Toast.makeText(getContext(), R.string.install_too_much_once_time, Toast.LENGTH_SHORT).show();
return;
}
}
mAdapter.toggleSelected(position);
}
@Override
public boolean isSelectable(int position) {
return mAdapter.isIndexSelected(position) || mAdapter.getSelectedCount() < 9;
}
});
mAdapter.setSelectionListener(count -> {
mInstallButton.setEnabled(count > 0);
mInstallButton.setText(String.format(Locale.ENGLISH, XApp.getApp().getResources().getString(R.string.install_d), count));
});
mInstallButton.setOnClickListener(v -> {
Integer[] selectedIndices = mAdapter.getSelectedIndices();
ArrayList<AppInfoLite> dataList = new ArrayList<AppInfoLite>(selectedIndices.length);
for (int index : selectedIndices) {
AppInfo info = mAdapter.getItem(index);
dataList.add(new AppInfoLite(info.packageName, info.path, info.fastOpen, info.disableMultiVersion));
}
Installd.startInstallerActivity(getActivity(), dataList);
getActivity().finish();
});
mSelectFromExternal.setOnClickListener(v -> {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
// apk file
intent.setType("application/vnd.android.package-archive");
intent.addCategory(Intent.CATEGORY_OPENABLE);
try {
startActivityForResult(intent, REQUEST_GET_FILE);
} catch (Throwable ignored) {
Toast.makeText(getActivity(), "Error", Toast.LENGTH_SHORT).show();
}
});
new ListAppPresenterImpl(getActivity(), this, getSelectFrom()).start();
}
use of android.support.v7.widget.helper.ItemTouchHelper.START in project gh4a by slapperwan.
the class IssueLabelAdapter method onCreateViewHolder.
@Override
public ViewHolder onCreateViewHolder(LayoutInflater inflater, ViewGroup parent, int viewType) {
View v = inflater.inflate(R.layout.row_issue_label, parent, false);
final ViewHolder holder = new ViewHolder(v);
holder.editor.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (holder.lastAssignedLabel != null) {
holder.lastAssignedLabel.editedName = s.toString();
}
}
});
Typeface labelTf = TypefaceCache.getTypeface(holder.label.getTypefaceValue());
holder.editor.setTypeface(labelTf);
ViewGroup colors = v.findViewById(R.id.colors);
int count = colors.getChildCount();
for (int i = 0; i < count; i++) {
View child = colors.getChildAt(i);
child.setOnClickListener(this);
}
colors.setTag(holder);
return holder;
}
use of android.support.v7.widget.helper.ItemTouchHelper.START 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);
}
Aggregations