private void chooseEditorAndOpenFileForNAndAbove() { Uri uri = FileProvider.getUriForFile(this, PROVIDER_AUTHORITY, mFileFragment.getFile()); String mimeType = FsUtils.getMimeType(uri.toString()); Intent editIntent = new Intent(Intent.ACTION_EDIT); editIntent.setDataAndType(uri, mimeType); editIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); try { startActivity(editIntent); forwardTransition(); } catch (ActivityNotFoundException e) { showMessageDialog(R.string.dialog_error_title, getString(R.string.error_no_edit_app)); } }
@Override public void onPageSelected(int position) { mCurrentTab = position; invalidateOptionsMenu(); }
switch (item.getItemId()) { case android.R.id.home: finish(); return true; case R.id.action_edit_in_other_app: try { Intent chooserIntent = Intent.createChooser(viewIntent, getString(R.string.label_choose_app_to_edit)); chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { editIntent }); startActivity(chooserIntent); forwardTransition(); } catch (ActivityNotFoundException e) { BasicFunctions.showException(e, R.string.error_no_edit_app); setSaveStatus(item); return true; case R.id.action_choose_language: cld.show(getFragmentManager(), "choose language"); return true; case R.id.action_copy_all:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_view_file); mRepo = (Repo) getIntent().getSerializableExtra(Repo.TAG); mViewPager = (ViewPager) findViewById(R.id.pager); mTabItemPagerAdapter = new TabItemPagerAdapter(getFragmentManager()); mViewPager.setAdapter(mTabItemPagerAdapter); mViewPager.setOnPageChangeListener(mTabItemPagerAdapter); Bundle b = new Bundle(); Bundle extras = getIntent().getExtras(); String fileName = extras.getString(TAG_FILE_NAME); mActivityMode = extras.getShort(TAG_MODE, TAG_MODE_NORMAL); b.putString(TAG_FILE_NAME, fileName); if (mRepo != null) { b.putSerializable(Repo.TAG, mRepo); mCommitsFragment = CommitsFragment.newInstance(mRepo, FsUtils.getRelativePath(new File(fileName), mRepo.getDir())); } if (mRepo == null) { PagerTitleStrip strip = (PagerTitleStrip) findViewById(R.id.pager_title_strip); strip.setVisibility(View.GONE); } mFileFragment = new ViewFileFragment(); mFileFragment.setArguments(b); mActivityMode = extras.getShort(TAG_MODE, TAG_MODE_NORMAL); b.putInt(TAG_MODE, mActivityMode); getActionBar().setDisplayHomeAsUpEnabled(true); setTitle(new File(fileName).getName()); }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_view_file); mRepo = (Repo) getIntent().getSerializableExtra(Repo.TAG); mViewPager = (ViewPager) findViewById(R.id.pager); mTabItemPagerAdapter = new TabItemPagerAdapter(getSupportFragmentManager()); mViewPager.setAdapter(mTabItemPagerAdapter); mViewPager.setOnPageChangeListener(mTabItemPagerAdapter); Bundle b = new Bundle(); Bundle extras = getIntent().getExtras(); String fileName = extras.getString(TAG_FILE_NAME); mActivityMode = extras.getShort(TAG_MODE, TAG_MODE_NORMAL); b.putString(TAG_FILE_NAME, fileName); if (mRepo != null) { b.putSerializable(Repo.TAG, mRepo); mCommitsFragment = CommitsFragment.newInstance(mRepo, FsUtils.getRelativePath(new File(fileName), mRepo.getDir())); } if (mRepo == null) { PagerTitleStrip strip = (PagerTitleStrip) findViewById(R.id.pager_title_strip); strip.setVisibility(View.GONE); } mFileFragment = new ViewFileFragment(); mFileFragment.setArguments(b); mActivityMode = extras.getShort(TAG_MODE, TAG_MODE_NORMAL); b.putShort(TAG_MODE, mActivityMode); getSupportActionBar().setDisplayHomeAsUpEnabled(true); setTitle(new File(fileName).getName()); }
switch (item.getItemId()) { case android.R.id.home: finish(); return true; case R.id.action_edit_in_other_app: chooseEditorAndOpenFileForNAndAbove(); chooseEditorAndOpenFileForMAndBelow(); setSaveStatus(item); return true; case R.id.action_choose_language: cld.show(getSupportFragmentManager(), "choose language"); return true; case R.id.action_copy_all:
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.view_file, menu); if (mActivityMode == TAG_MODE_SSH_KEY) { menu.removeItem(R.id.action_edit); setSaveStatus(mi); mi.setVisible(mCurrentTab == FILE_FRAGMENT_INDEX); mi = menu.findItem(R.id.action_edit_in_other_app);
@Override public void onClick(DialogInterface dialogInterface, int position) { String lang = langs.get(position); String tag = CodeGuesser.getLanguageTag(lang); mActivity.setLanguage(tag); } });
@Override public CharSequence getPageTitle(int position) { return getString(PAGE_TITLE[position]); }
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.view_file, menu); if (mActivityMode == TAG_MODE_SSH_KEY) { menu.removeItem(R.id.action_edit); setSaveStatus(mi); mi.setVisible(mCurrentTab == FILE_FRAGMENT_INDEX); mi = menu.findItem(R.id.action_edit_in_other_app);
@Override public void onClick(DialogInterface dialogInterface, int position) { String lang = langs.get(position); String tag = CodeGuesser.getLanguageTag(lang); mActivity.setLanguage(tag); } });
@Override public CharSequence getPageTitle(int position) { return getString(PAGE_TITLE[position]); }
private void chooseEditorAndOpenFileForMAndBelow() { Uri uri = Uri.fromFile(mFileFragment.getFile()); String mimeType = FsUtils.getMimeType(uri.toString()); Intent viewIntent = new Intent(Intent.ACTION_VIEW); Intent editIntent = new Intent(Intent.ACTION_EDIT); viewIntent.setDataAndType(uri, mimeType); editIntent.setDataAndType(uri, mimeType); try { Intent chooserIntent = Intent.createChooser(viewIntent, getString(R.string.label_choose_app_to_edit)); chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { editIntent }); startActivity(chooserIntent); forwardTransition(); } catch (ActivityNotFoundException e) { showMessageDialog(R.string.dialog_error_title, getString(R.string.error_no_edit_app)); } }
@Override public void onPageSelected(int position) { mCurrentTab = position; invalidateOptionsMenu(); }