// Path: app/src/main/java/app/presentation/foundation/BaseApp.java
// public class BaseApp extends Application {
//     private PresentationComponent presentationComponent;
//     private GoogleAnalytics analytics;
//     private Tracker tracker;
// 
//     @Override public void onCreate() {
//         super.onCreate();
//         initInject();
//         AppCare.YesSir.takeCareOn(this);
//         initGcm();
//         initGoogleAnalytics();
//     }
// 
//     private void initInject() {
//         presentationComponent = DaggerPresentationComponent.builder()
//                 .presentationModule(new PresentationModule(this))
//                 .build();
//     }
// 
//     private void initGcm() {
//         RxGcm.Notifications.register(this, GcmMessageReceiver.class, GcmReceiverBackground.class)
//                 .subscribe(token -> {}, error -> {});
// 
//         RxGcm.Notifications.onRefreshToken(GcmTokenReceiver.class);
//     }
// 
//     private void initGoogleAnalytics() {
//         analytics = GoogleAnalytics.getInstance(this);
// 
//         if(BuildConfig.DEBUG) {
//             // true = for log output, it does not sent data to Google Analytics
//             analytics.setDryRun(true);
//             // To enable debug logging on a device run:
//             // adb shell setprop log.tag.GAv4 DEBUG
//             // adb logcat -s GAv4
//             // true = disable google analytics on the app
// //        analytics.setAppOptOut(true);
//         }
// 
//         tracker = analytics.newTracker(getString(R.string.ga_trackingId));
//         tracker.enableExceptionReporting(true);
//         tracker.enableAdvertisingIdCollection(true);
//         tracker.enableAutoActivityTracking(false);
//     }
// 
//     public Tracker getTracker() {
//         return tracker;
//     }
// 
//     public PresentationComponent getPresentationComponent() {
//         return presentationComponent;
//     }
// 
//     @Nullable public BaseActivity getLiveActivity(){
//         return (BaseActivity) AppCare.YesSir.getLiveActivityOrNull();
//     }
// }
// 
// Path: app/src/main/java/app/presentation/foundation/dagger/PresentationComponent.java
// @Singleton @Component(modules = {PresentationModule.class})
// public interface PresentationComponent {
//     void inject(LaunchActivity launchActivity);
// 
//     void inject(DashBoardActivity dashBoardActivity);
//     void inject(UserFragment userFragment);
//     void inject(UsersFragment usersFragment);
//     void inject(SearchUserFragment searchUserFragment);
// 
//     void inject(GcmTokenReceiver gcmTokenReceiver);
//     void inject(GcmMessageReceiver gcmMessageReceiver);
// }
// 
// Path: app/src/main/java/app/presentation/sections/Wireframe.java
// public class Wireframe {
//     private final BaseApp baseApp;
// 
//     @Inject public Wireframe(BaseApp baseApp) {
//         this.baseApp = baseApp;
//     }
// 
//     public void dashboard() {
//         baseApp.getLiveActivity().startActivity(new Intent(baseApp, DashBoardActivity.class));
//     }
// 
//     public void userScreen() {
//         Bundle bundle = new Bundle();
//         bundle.putString(BaseActivity.Behaviour.TITLE_KEY, baseApp.getString(R.string.user));
//         bundle.putSerializable(BaseActivity.Behaviour.FRAGMENT_CLASS_KEY, UserFragment.class);
// 
//         Intent intent = new Intent(baseApp, SingleActivity.class);
//         intent.putExtras(bundle);
//         baseApp.getLiveActivity().startActivity(intent);
//     }
// 
//     public void searchUserScreen() {
//         Bundle bundleFragment = new Bundle();
//         bundleFragment.putString(SearchUserFragment.HELLO_FROM_BUNDLE_WIREFRAME_KEY, "Hi from wireframe bundle");
// 
//         Bundle bundle = new Bundle();
//         bundle.putString(BaseActivity.Behaviour.TITLE_KEY, baseApp.getString(R.string.find_user));
//         bundle.putSerializable(BaseActivity.Behaviour.FRAGMENT_CLASS_KEY, SearchUserFragment.class);
//         bundle.putBundle(BaseActivity.Behaviour.BUNDLE_FOR_FRAGMENT, bundleFragment);
// 
//         Intent intent = new Intent(baseApp, SingleActivity.class);
//         intent.putExtras(bundle);
//         baseApp.getLiveActivity().startActivity(intent);
//     }
// 
// 
//     public void popCurrentScreen() {
//         baseApp.getLiveActivity().onBackPressed();
//     }
// }


import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.Snackbar;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
import com.afollestad.materialdialogs.MaterialDialog;
import org.base_app_android.R;
import java.io.Serializable;
import javax.inject.Inject;
import app.presentation.foundation.BaseApp;
import app.presentation.foundation.dagger.PresentationComponent;
import app.presentation.sections.Wireframe;
import butterknife.Bind;
import butterknife.ButterKnife;
import rx.Observable;
/*
 * Copyright 2016 FuckBoilerplate
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package app.presentation.foundation.views;







public abstract class BaseActivity extends AppCompatActivity {
    @Nullable @Bind(R.id.app_bar) protected AppBarLayout app_bar;
    @Nullable @Bind(R.id.toolbar) protected Toolbar toolbar;
// Path: app/src/main/java/app/presentation/foundation/BaseApp.java
// public class BaseApp extends Application {
//     private PresentationComponent presentationComponent;
//     private GoogleAnalytics analytics;
//     private Tracker tracker;
// 
//     @Override public void onCreate() {
//         super.onCreate();
//         initInject();
//         AppCare.YesSir.takeCareOn(this);
//         initGcm();
//         initGoogleAnalytics();
//     }
// 
//     private void initInject() {
//         presentationComponent = DaggerPresentationComponent.builder()
//                 .presentationModule(new PresentationModule(this))
//                 .build();
//     }
// 
//     private void initGcm() {
//         RxGcm.Notifications.register(this, GcmMessageReceiver.class, GcmReceiverBackground.class)
//                 .subscribe(token -> {}, error -> {});
// 
//         RxGcm.Notifications.onRefreshToken(GcmTokenReceiver.class);
//     }
// 
//     private void initGoogleAnalytics() {
//         analytics = GoogleAnalytics.getInstance(this);
// 
//         if(BuildConfig.DEBUG) {
//             // true = for log output, it does not sent data to Google Analytics
//             analytics.setDryRun(true);
//             // To enable debug logging on a device run:
//             // adb shell setprop log.tag.GAv4 DEBUG
//             // adb logcat -s GAv4
//             // true = disable google analytics on the app
// //        analytics.setAppOptOut(true);
//         }
// 
//         tracker = analytics.newTracker(getString(R.string.ga_trackingId));
//         tracker.enableExceptionReporting(true);
//         tracker.enableAdvertisingIdCollection(true);
//         tracker.enableAutoActivityTracking(false);
//     }
// 
//     public Tracker getTracker() {
//         return tracker;
//     }
// 
//     public PresentationComponent getPresentationComponent() {
//         return presentationComponent;
//     }
// 
//     @Nullable public BaseActivity getLiveActivity(){
//         return (BaseActivity) AppCare.YesSir.getLiveActivityOrNull();
//     }
// }
// 
// Path: app/src/main/java/app/presentation/foundation/dagger/PresentationComponent.java
// @Singleton @Component(modules = {PresentationModule.class})
// public interface PresentationComponent {
//     void inject(LaunchActivity launchActivity);
// 
//     void inject(DashBoardActivity dashBoardActivity);
//     void inject(UserFragment userFragment);
//     void inject(UsersFragment usersFragment);
//     void inject(SearchUserFragment searchUserFragment);
// 
//     void inject(GcmTokenReceiver gcmTokenReceiver);
//     void inject(GcmMessageReceiver gcmMessageReceiver);
// }
// 
// Path: app/src/main/java/app/presentation/sections/Wireframe.java
// public class Wireframe {
//     private final BaseApp baseApp;
// 
//     @Inject public Wireframe(BaseApp baseApp) {
//         this.baseApp = baseApp;
//     }
// 
//     public void dashboard() {
//         baseApp.getLiveActivity().startActivity(new Intent(baseApp, DashBoardActivity.class));
//     }
// 
//     public void userScreen() {
//         Bundle bundle = new Bundle();
//         bundle.putString(BaseActivity.Behaviour.TITLE_KEY, baseApp.getString(R.string.user));
//         bundle.putSerializable(BaseActivity.Behaviour.FRAGMENT_CLASS_KEY, UserFragment.class);
// 
//         Intent intent = new Intent(baseApp, SingleActivity.class);
//         intent.putExtras(bundle);
//         baseApp.getLiveActivity().startActivity(intent);
//     }
// 
//     public void searchUserScreen() {
//         Bundle bundleFragment = new Bundle();
//         bundleFragment.putString(SearchUserFragment.HELLO_FROM_BUNDLE_WIREFRAME_KEY, "Hi from wireframe bundle");
// 
//         Bundle bundle = new Bundle();
//         bundle.putString(BaseActivity.Behaviour.TITLE_KEY, baseApp.getString(R.string.find_user));
//         bundle.putSerializable(BaseActivity.Behaviour.FRAGMENT_CLASS_KEY, SearchUserFragment.class);
//         bundle.putBundle(BaseActivity.Behaviour.BUNDLE_FOR_FRAGMENT, bundleFragment);
// 
//         Intent intent = new Intent(baseApp, SingleActivity.class);
//         intent.putExtras(bundle);
//         baseApp.getLiveActivity().startActivity(intent);
//     }
// 
// 
//     public void popCurrentScreen() {
//         baseApp.getLiveActivity().onBackPressed();
//     }
// }


// Path: app/src/main/java/app/presentation/foundation/views/BaseActivity.java
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.Snackbar;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
import com.afollestad.materialdialogs.MaterialDialog;
import org.base_app_android.R;
import java.io.Serializable;
import javax.inject.Inject;
import app.presentation.foundation.BaseApp;
import app.presentation.foundation.dagger.PresentationComponent;
import app.presentation.sections.Wireframe;
import butterknife.Bind;
import butterknife.ButterKnife;
import rx.Observable;

/*
 * Copyright 2016 FuckBoilerplate
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package app.presentation.foundation.views;







public abstract class BaseActivity extends AppCompatActivity {
    @Nullable @Bind(R.id.app_bar) protected AppBarLayout app_bar;
    @Nullable @Bind(R.id.toolbar) protected Toolbar toolbar;
    @Inject protected Wireframe wireframe;