// Path: app/src/main/java/com/mgilangjanuar/dev/goscele/modules/browser/view/BrowserActivity.java
// public class BrowserActivity extends BaseActivity implements BrowserListener {
// 
//     public AlertDialog alertDialog;
//     @BindView(R.id.web_view)
//     WebView webView;
//     @BindView(R.id.progress_bar_browser)
//     ProgressBar progressBar;
//     @BindView(R.id.toolbar_app_browser)
//     Toolbar toolbar;
//     private BrowserPresenter presenter;
// 
//     @Override
//     public void initialize(Bundle savedInstanceState) {
//         super.initialize(savedInstanceState);
//         getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//         getSupportActionBar().setDisplayShowHomeEnabled(true);
// 
//         presenter = new BrowserPresenter(this, this, getIntent().getExtras().getString(Constant.URL));
// 
//         if (!presenter.isContinueOpenWebView()) {
//             super.onBackPressed();
//             return;
//         }
// 
//         if (!presenter.isStoragePermissionGranted()) {
//             webView.stopLoading();
//             presenter.showStoragePermissionAlertDialog(BrowserActivity.this);
//         }
// 
//         CookieManager.getInstance().setAcceptCookie(true);
// 
//         webView.getSettings().setJavaScriptEnabled(true);
//         webView.getSettings().setAppCacheEnabled(true);
// 
//         webView.setWebViewClient(presenter.buildWebViewClient(toolbar, webView));
//         webView.setWebChromeClient(presenter.buildWebChromeClient(progressBar));
//         webView.setDownloadListener(presenter.buildDownloadWrapper());
// 
//         webView.clearCache(true);
//         webView.clearHistory();
//         presenter.clearCookies(this);
// 
//         CookieManager.getInstance().setCookie(presenter.url, presenter.getCookie());
//         webView.loadUrl(presenter.url);
//     }
// 
//     @Override
//     public int findLayout() {
//         return R.layout.activity_browser;
//     }
// 
//     @Override
//     public Toolbar findToolbar() {
//         return toolbar;
//     }
// 
//     @Override
//     public void onBackPressed() {
//         if (webView.canGoBack()) {
//             webView.goBack();
//         } else {
//             super.onBackPressed();
//         }
//     }
// 
//     @Override
//     public boolean onSupportNavigateUp() {
//         onBackPressed();
//         return true;
//     }
// 
//     @Override
//     public int findOptionsMenu() {
//         return R.menu.in_app_browser_menu;
//     }
// 
//     @Override
//     public boolean onOptionsItemSelected(MenuItem item) {
//         switch (item.getItemId()) {
//             case (R.id.item_browser_share):
//                 presenter.shareUrl(webView);
//                 break;
//             case (R.id.item_browser_open):
//                 presenter.openOtherApp();
//                 break;
//         }
//         return super.onOptionsItemSelected(item);
//     }
// 
//     @Override
//     public boolean onCreateOptionsMenu(Menu menu) {
//         return super.onCreateOptionsMenu(menu);
//     }
// 
//     @Override
//     public void onAskStoragePermission() {
//         AlertDialog.Builder builder = new AlertDialog.Builder(this);
//         builder.setCancelable(true);
//         builder.setTitle(getString(R.string.permission_title));
//         builder.setMessage(getString(R.string.storage_permission));
//         builder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
//             @Override
//             public void onClick(DialogInterface dialog, int which) {
//                 ActivityCompat.requestPermissions(BrowserActivity.this,
//                         new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, Constant.ASK_STORAGE_PERMISSION_CODE);
//             }
//         });
//         alertDialog = builder.create();
//         alertDialog.show();
//     }
// 
//     @Override
//     public void onDownloadStart() {
//         if (alertDialog != null && alertDialog.isShowing()) {
//             alertDialog.cancel();
//         }
//         finish();
//     }
// }
// 
// Path: app/src/main/java/com/mgilangjanuar/dev/goscele/utils/Constant.java
// public class Constant {
//     // URL and routes
//     public static final String BASE_URL = "https://scele.cs.ui.ac.id/";
//     public static final String BASE_URL_SIAK = "https://academic.ui.ac.id/main/";
// 
//     public static final String ROUTE_LOGIN = "login/index.php";
//     public static final String ROUTE_LOGIN_SIAK = "Authentication/Index";
//     public static final String ROUTE_CHANGE_ROLE = "main/Authentication/ChangeRole";
// 
//     // Misc
//     public static final String URL = "url";
//     public static final String USER_AGENT = "User-Agent";
//     public static final String COOKIE = "cookie";
//     public static final int ASK_STORAGE_PERMISSION_CODE = 123;
//     public static final CharSequence LABEL = "label";
//     public static final String WIDGET_ACTION_DATA_CHANGE = "CHECK_LIST";
//     public static final String COURSE_NAME = "course name";
// }


import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import com.mgilangjanuar.dev.goscele.modules.browser.view.BrowserActivity;
import com.mgilangjanuar.dev.goscele.utils.Constant;
package com.mgilangjanuar.dev.goscele.modules.deeplink.view;



/**
 * Created by mgilangjanuar (mgilangjanuar@gmail.com)
 *
 * @since 2017
 */

public class DeepLinkActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
// Path: app/src/main/java/com/mgilangjanuar/dev/goscele/modules/browser/view/BrowserActivity.java
// public class BrowserActivity extends BaseActivity implements BrowserListener {
// 
//     public AlertDialog alertDialog;
//     @BindView(R.id.web_view)
//     WebView webView;
//     @BindView(R.id.progress_bar_browser)
//     ProgressBar progressBar;
//     @BindView(R.id.toolbar_app_browser)
//     Toolbar toolbar;
//     private BrowserPresenter presenter;
// 
//     @Override
//     public void initialize(Bundle savedInstanceState) {
//         super.initialize(savedInstanceState);
//         getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//         getSupportActionBar().setDisplayShowHomeEnabled(true);
// 
//         presenter = new BrowserPresenter(this, this, getIntent().getExtras().getString(Constant.URL));
// 
//         if (!presenter.isContinueOpenWebView()) {
//             super.onBackPressed();
//             return;
//         }
// 
//         if (!presenter.isStoragePermissionGranted()) {
//             webView.stopLoading();
//             presenter.showStoragePermissionAlertDialog(BrowserActivity.this);
//         }
// 
//         CookieManager.getInstance().setAcceptCookie(true);
// 
//         webView.getSettings().setJavaScriptEnabled(true);
//         webView.getSettings().setAppCacheEnabled(true);
// 
//         webView.setWebViewClient(presenter.buildWebViewClient(toolbar, webView));
//         webView.setWebChromeClient(presenter.buildWebChromeClient(progressBar));
//         webView.setDownloadListener(presenter.buildDownloadWrapper());
// 
//         webView.clearCache(true);
//         webView.clearHistory();
//         presenter.clearCookies(this);
// 
//         CookieManager.getInstance().setCookie(presenter.url, presenter.getCookie());
//         webView.loadUrl(presenter.url);
//     }
// 
//     @Override
//     public int findLayout() {
//         return R.layout.activity_browser;
//     }
// 
//     @Override
//     public Toolbar findToolbar() {
//         return toolbar;
//     }
// 
//     @Override
//     public void onBackPressed() {
//         if (webView.canGoBack()) {
//             webView.goBack();
//         } else {
//             super.onBackPressed();
//         }
//     }
// 
//     @Override
//     public boolean onSupportNavigateUp() {
//         onBackPressed();
//         return true;
//     }
// 
//     @Override
//     public int findOptionsMenu() {
//         return R.menu.in_app_browser_menu;
//     }
// 
//     @Override
//     public boolean onOptionsItemSelected(MenuItem item) {
//         switch (item.getItemId()) {
//             case (R.id.item_browser_share):
//                 presenter.shareUrl(webView);
//                 break;
//             case (R.id.item_browser_open):
//                 presenter.openOtherApp();
//                 break;
//         }
//         return super.onOptionsItemSelected(item);
//     }
// 
//     @Override
//     public boolean onCreateOptionsMenu(Menu menu) {
//         return super.onCreateOptionsMenu(menu);
//     }
// 
//     @Override
//     public void onAskStoragePermission() {
//         AlertDialog.Builder builder = new AlertDialog.Builder(this);
//         builder.setCancelable(true);
//         builder.setTitle(getString(R.string.permission_title));
//         builder.setMessage(getString(R.string.storage_permission));
//         builder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
//             @Override
//             public void onClick(DialogInterface dialog, int which) {
//                 ActivityCompat.requestPermissions(BrowserActivity.this,
//                         new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, Constant.ASK_STORAGE_PERMISSION_CODE);
//             }
//         });
//         alertDialog = builder.create();
//         alertDialog.show();
//     }
// 
//     @Override
//     public void onDownloadStart() {
//         if (alertDialog != null && alertDialog.isShowing()) {
//             alertDialog.cancel();
//         }
//         finish();
//     }
// }
// 
// Path: app/src/main/java/com/mgilangjanuar/dev/goscele/utils/Constant.java
// public class Constant {
//     // URL and routes
//     public static final String BASE_URL = "https://scele.cs.ui.ac.id/";
//     public static final String BASE_URL_SIAK = "https://academic.ui.ac.id/main/";
// 
//     public static final String ROUTE_LOGIN = "login/index.php";
//     public static final String ROUTE_LOGIN_SIAK = "Authentication/Index";
//     public static final String ROUTE_CHANGE_ROLE = "main/Authentication/ChangeRole";
// 
//     // Misc
//     public static final String URL = "url";
//     public static final String USER_AGENT = "User-Agent";
//     public static final String COOKIE = "cookie";
//     public static final int ASK_STORAGE_PERMISSION_CODE = 123;
//     public static final CharSequence LABEL = "label";
//     public static final String WIDGET_ACTION_DATA_CHANGE = "CHECK_LIST";
//     public static final String COURSE_NAME = "course name";
// }


// Path: app/src/main/java/com/mgilangjanuar/dev/goscele/modules/deeplink/view/DeepLinkActivity.java
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import com.mgilangjanuar.dev.goscele.modules.browser.view.BrowserActivity;
import com.mgilangjanuar.dev.goscele.utils.Constant;

package com.mgilangjanuar.dev.goscele.modules.deeplink.view;



/**
 * Created by mgilangjanuar (mgilangjanuar@gmail.com)
 *
 * @since 2017
 */

public class DeepLinkActivity extends AppCompatActivity {

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