Android Open Source - O365-Android-Start Main Buttons Fragment






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.
 *///  ww  w . j a va 2  s .c  o m

package com.microsoft.office365.starter.views;

import android.app.Fragment;
import android.content.Context;
import android.graphics.PorterDuff.Mode;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageButton;

import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.microsoft.office365.starter.Controller;
import com.microsoft.office365.starter.O365APIsStart_Application;
import com.microsoft.office365.starter.R;
import com.microsoft.office365.starter.helpers.Authentication;
import com.microsoft.office365.starter.helpers.Constants;
import com.microsoft.office365.starter.interfaces.MainActivityCoordinator;
import com.microsoft.services.odata.impl.DefaultDependencyResolver;

public class MainButtonsFragment extends Fragment implements OnClickListener {

  private ImageButton mCalendarButton;
  private ImageButton mFilesButton;
  private O365APIsStart_Application mApplication;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mApplication = (O365APIsStart_Application) getActivity()
        .getApplication();
    mApplication.getAppPreferences();
  }

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
      Bundle savedInstanceState) {
    View fragmentView = inflater.inflate(R.layout.fragment_main_buttons,
        container, false);

    // Create references to ImageButtons
    mCalendarButton = (ImageButton) fragmentView
        .findViewById(R.id.calendarButton);
    mFilesButton = (ImageButton) fragmentView
        .findViewById(R.id.filesButton);
    mCalendarButton.setOnClickListener(this);
    mFilesButton.setOnClickListener(this);

    // Inflate the layout for this fragment
    return fragmentView;
  }

  public void setButtonsEnabled(boolean enabled) {
    setImageButtonEnabled(getActivity(), enabled, mCalendarButton,
        R.drawable.calendar_icon_main);
    setImageButtonEnabled(getActivity(), enabled, mFilesButton,
        R.drawable.myfiles_icon_main);
  }

  private static void setImageButtonEnabled(Context ctxt, boolean enabled,
      ImageButton item, int iconResId) {
    item.setEnabled(enabled);
    item.setClickable(enabled);
    Drawable originalIcon = ctxt.getResources().getDrawable(iconResId);
    int overlay = ctxt.getResources().getColor(R.color.DisabledItemBrush);
    Drawable icon = enabled ? originalIcon : applyOverlayToDrawable(
        originalIcon, overlay);
    item.setImageDrawable(icon);
  }

  private static Drawable applyOverlayToDrawable(Drawable drawable,
      int overlay) {
    if (drawable == null) {
      return null;
    }
    Drawable res = drawable.mutate();
    res.setColorFilter(overlay, Mode.SRC_IN);
    return res;
  }

  @Override
  public void onClick(View v) {
    String capability = "";
    switch (v.getId()) {
    case R.id.filesButton:
      capability = Constants.MYFILES_CAPABILITY;
      break;
    case R.id.calendarButton:
      capability = Constants.CALENDAR_CAPABILITY;
      if (mApplication.getCalendarModel() != null) {
        mApplication.getCalendarModel().getCalendar().ITEMS.clear();
        mApplication.getCalendarModel().getCalendar().ITEM_MAP.clear();
      }
      break;
    }
    authenticateService(capability);
  }

  public void authenticateService(final String capability) {

    String serviceResourceId = mApplication.getService(capability)
        .getserviceResourceId();

    DefaultDependencyResolver dp = (DefaultDependencyResolver) Controller
        .getInstance().getDependencyResolver();
    ListenableFuture<Void> future = Authentication.authenticate(
        getActivity(), dp, serviceResourceId);

    Futures.addCallback(future, new FutureCallback<Void>() {
      @Override
      public void onFailure(Throwable t) {
        Log.e("Asset", t.getMessage());
      }

      @Override
      public void onSuccess(Void v) {
        Log.i("Asset", "Authenticated the " + capability
            + " capability");
        MainActivityCoordinator mainActivity = (MainActivityCoordinator) getActivity();
        mainActivity.onServiceAuthenticated(capability);
      }
    });
  }
}
// *********************************************************
//
// 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