Android Open Source - O365-Android-Start File Detail Activity






From Project

Back to project page O365-Android-Start.

License

The source code is released under:

MIT License

If you think the Android project O365-Android-Start listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 *  Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See full license at the bottom of this file.
 *//*  w w w  .  j  a  v  a 2s . c o  m*/

package com.microsoft.office365.starter.views;

import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

import com.microsoft.office365.starter.O365APIsStart_Application;
import com.microsoft.office365.starter.R;
import com.microsoft.office365.starter.helpers.ProgressDialogHelper;
import com.microsoft.office365.starter.interfaces.OnOperationCompleteListener;

/**
 * An activity representing a single File detail screen. This activity is
 * only used on handset devices. On tablet-size devices, item details are
 * presented side-by-side with a list of items in a {@link FileListActivity}.
 * <p>
 * This activity is mostly just a 'shell' activity containing nothing more than
 * a {@link FileDetailFragment}.
 */
public class FileDetailActivity extends Activity implements
    FileUpdateFragment.Callbacks, OnOperationCompleteListener {

  private static final String UPDATE_FRAGMENT_STACK_STATE = "updateFragment";
  private ProgressDialog mDialog;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_file_detail);

    // Show the Up button in the action bar.
    getActionBar().setDisplayHomeAsUpEnabled(true);

    if (savedInstanceState == null) {
      // Create the detail fragment and add it to the activity
      // using a fragment transaction.
      Bundle arguments = new Bundle();
      FileDetailFragment fragment = new FileDetailFragment();
      getFragmentManager().beginTransaction()
          .add(R.id.file_detail_container, fragment).commit();

    }
  }

  // Handler for update action from button press
  private void updateActionHandler() {
    // Display the update fragment
    FileUpdateFragment updateFragment = new FileUpdateFragment();
    FragmentManager fragmentManager = getFragmentManager();
    android.app.FragmentTransaction ft = fragmentManager.beginTransaction();
    ft.replace(R.id.file_detail_container, updateFragment,
        UPDATE_FRAGMENT_STACK_STATE);
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    ft.addToBackStack(UPDATE_FRAGMENT_STACK_STATE);
    ft.commit();
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.file_detail_menu, menu);
    return super.onCreateOptionsMenu(menu);
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    // Handle presses on the action bar items
    switch (item.getItemId()) {
    case R.id.action_file_update:
      updateActionHandler();
      return true;
    case android.R.id.home:
      NavUtils.navigateUpTo(this,
          new Intent(this, FileListActivity.class));
      return true;

    default:
      return super.onOptionsItemSelected(item);
    }
  }

  @Override
  public void onContentsUpdated(String updatedContent) {
    FragmentManager fm = getFragmentManager();
    fm.popBackStack(UPDATE_FRAGMENT_STACK_STATE,
        FragmentManager.POP_BACK_STACK_INCLUSIVE);

    O365APIsStart_Application application = (O365APIsStart_Application) getApplication();
    application.getDisplayedFile().setContents(FileDetailActivity.this,
        updatedContent);
    mDialog = ProgressDialogHelper.showProgressDialog(
        FileDetailActivity.this, "Updating file contents on server...",
        "Please wait.");
    application.getFileListViewState().setEventOperationCompleteListener(
        FileDetailActivity.this);
    application.getFileListViewState().postUpdatedFileContents(application,
        FileDetailActivity.this, application.getFileClient(),
        updatedContent);
  }

  @Override
  public void onFileUpdateCancelled() {
    FragmentManager fm = getFragmentManager();
    fm.popBackStack(UPDATE_FRAGMENT_STACK_STATE,
        FragmentManager.POP_BACK_STACK_INCLUSIVE);
  }

  @Override
  public void onOperationComplete(final OperationResult opResult) {
    this.runOnUiThread(new Runnable() {

      @Override
      public void run() {
        if (mDialog.isShowing()) {
          mDialog.dismiss();
        }

        Toast.makeText(FileDetailActivity.this,
            opResult.getOperationResult(), Toast.LENGTH_LONG)
            .show();
        if (opResult.getId().equals("FileDeleted")) {
          // The file displayed may be the one just deleted
          // so clear the display to be safe.
          O365APIsStart_Application application = (O365APIsStart_Application) getApplication();
          application.setDisplayedFile(null);
          FragmentManager fm = getFragmentManager();
          FileDetailFragment fragment = (FileDetailFragment) fm
              .findFragmentById(R.id.file_detail_container);
          if (fragment != null)
            fragment.refresh(null);
        }
        if (opResult.getId().equals("FileContentsUpdate")) {
          // refresh the display to reflect new file contents
          FragmentManager fm = getFragmentManager();
          FileDetailFragment fragment = (FileDetailFragment) fm
              .findFragmentById(R.id.file_detail_container);
          if (fragment != null)
          {
            O365APIsStart_Application application = (O365APIsStart_Application) getApplication();
            fragment.refresh(application.getDisplayedFile());
          }
        }


      }
    });

  }

}
//*********************************************************
//
//O365-Android-Start, https://github.com/OfficeDev/O365-Android-Start
//
//Copyright (c) Microsoft Corporation
//All rights reserved.
//
//MIT License:
//Permission is hereby granted, free of charge, to any person obtaining
//a copy of this software and associated documentation files (the
//"Software"), to deal in the Software without restriction, including
//without limitation the rights to use, copy, modify, merge, publish,
//distribute, sublicense, and/or sell copies of the Software, and to
//permit persons to whom the Software is furnished to do so, subject to
//the following conditions:
//
//The above copyright notice and this permission notice shall be
//included in all copies or substantial portions of the Software.
//
//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
//NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
//LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
//OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
//WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//*********************************************************





Java Source Code List

com.microsoft.office365.starter.Controller.java
com.microsoft.office365.starter.O365APIsStart_Application.java
com.microsoft.office365.starter.helpers.Authentication.java
com.microsoft.office365.starter.helpers.Constants.java
com.microsoft.office365.starter.helpers.File_UI_State.java
com.microsoft.office365.starter.helpers.ProgressDialogHelper.java
com.microsoft.office365.starter.interfaces.BaseDialogListener.java
com.microsoft.office365.starter.interfaces.MainActivityCoordinator.java
com.microsoft.office365.starter.interfaces.NoticeDialogListener.java
com.microsoft.office365.starter.interfaces.OnEventsAddedListener.java
com.microsoft.office365.starter.interfaces.OnFileChangedEventListener.java
com.microsoft.office365.starter.interfaces.OnOperationCompleteListener.java
com.microsoft.office365.starter.interfaces.OnSignInResultListener.java
com.microsoft.office365.starter.models.AppPreferences.java
com.microsoft.office365.starter.models.O365CalendarModel.java
com.microsoft.office365.starter.models.O365FileListModel.java
com.microsoft.office365.starter.models.O365FileModel.java
com.microsoft.office365.starter.views.CalendarEventDetailActivity.java
com.microsoft.office365.starter.views.CalendarEventDetailFragment.java
com.microsoft.office365.starter.views.CalendarEventFragmentDelete.java
com.microsoft.office365.starter.views.CalendarEventFragmentView.java
com.microsoft.office365.starter.views.CalendarEventListActivity.java
com.microsoft.office365.starter.views.CalendarEventListFragment.java
com.microsoft.office365.starter.views.DeleteDialogFragment.java
com.microsoft.office365.starter.views.FileButtonsFragment.java
com.microsoft.office365.starter.views.FileDetailActivity.java
com.microsoft.office365.starter.views.FileDetailFragment.java
com.microsoft.office365.starter.views.FileListActivity.java
com.microsoft.office365.starter.views.FileListFragment.java
com.microsoft.office365.starter.views.FileUpdateFragment.java
com.microsoft.office365.starter.views.MainActivity.java
com.microsoft.office365.starter.views.MainButtonsFragment.java
com.microsoft.office365.starter.views.MainReadmeFragment.java