How to perform the navigation in Android Studio?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I am developing an Android application by using MySQL. There i am using a class called selector.java which perform the navigation for login and registration.



selector.java



import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class Selector extends AppCompatActivity
{
public static PreConfig preConfig;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
preConfig = new PreConfig(this);
if(preConfig.readLoginStatus())
{
Intent i = new Intent(this,sample.class);
startActivity(i);
}
else
{
Intent intentList = new
Intent(this,MainDrawer.class);
startActivity(intentList);
}
}
}


in the above scenario it will redirect me to the MainDrawer.class straightly but i need to navigate to MainDrawer.class once the login is successful.



If i will change the above code as follows then it wont show up the MainDrawer after the successful log in



 if(preConfig.readLoginStatus())
{
Intent i = new Intent(this,sample.class);
startActivity(i);

}
else
{
Intent i = new Intent(this,LoginActivity.class);
startActivity(i);
}
}


MainDrawer.java



import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

public class MainDrawer extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

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


Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this,drawer,toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView)
findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed(){
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if(drawer.isDrawerOpen(GravityCompat.START)){
drawer.closeDrawer(GravityCompat.START);
}
else{
super.onBackPressed();
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.nav_drawer, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
int id = item.getItemId();

if(id == R.id.action_settings ){
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
public boolean onNavigationItemSelected(MenuItem item){
DrawerLayout drawer = (DrawerLayout)
findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}


Sample.java



import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
import com.google.firebase.iid.FirebaseInstanceId;

public class sample extends AppCompatActivity {

public String printMyFCMToken()
{
Log.e("FCM Token=",""+ FirebaseInstanceId.getInstance().getToken());
return FirebaseInstanceId.getInstance().getToken();
}

}


Now i want to navigate to MainDrawer after successful login.
How can i achieve that?










share|improve this question























  • What is Preconfig?

    – m0skit0
    Nov 16 '18 at 18:50











  • it is a kind of variable

    – vst dell
    Nov 16 '18 at 18:51











  • I mean the class PreConfig, not the variable.

    – m0skit0
    Nov 16 '18 at 18:52













  • with the use of that we can access our script result here in my case used to get the results from db files(scripts)

    – vst dell
    Nov 16 '18 at 18:55













  • Ok, then what is readLoginStatus() for? What is the meaning of the boolean value it is returning?

    – m0skit0
    Nov 16 '18 at 18:56


















0















I am developing an Android application by using MySQL. There i am using a class called selector.java which perform the navigation for login and registration.



selector.java



import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class Selector extends AppCompatActivity
{
public static PreConfig preConfig;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
preConfig = new PreConfig(this);
if(preConfig.readLoginStatus())
{
Intent i = new Intent(this,sample.class);
startActivity(i);
}
else
{
Intent intentList = new
Intent(this,MainDrawer.class);
startActivity(intentList);
}
}
}


in the above scenario it will redirect me to the MainDrawer.class straightly but i need to navigate to MainDrawer.class once the login is successful.



If i will change the above code as follows then it wont show up the MainDrawer after the successful log in



 if(preConfig.readLoginStatus())
{
Intent i = new Intent(this,sample.class);
startActivity(i);

}
else
{
Intent i = new Intent(this,LoginActivity.class);
startActivity(i);
}
}


MainDrawer.java



import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

public class MainDrawer extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

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


Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this,drawer,toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView)
findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed(){
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if(drawer.isDrawerOpen(GravityCompat.START)){
drawer.closeDrawer(GravityCompat.START);
}
else{
super.onBackPressed();
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.nav_drawer, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
int id = item.getItemId();

if(id == R.id.action_settings ){
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
public boolean onNavigationItemSelected(MenuItem item){
DrawerLayout drawer = (DrawerLayout)
findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}


Sample.java



import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
import com.google.firebase.iid.FirebaseInstanceId;

public class sample extends AppCompatActivity {

public String printMyFCMToken()
{
Log.e("FCM Token=",""+ FirebaseInstanceId.getInstance().getToken());
return FirebaseInstanceId.getInstance().getToken();
}

}


Now i want to navigate to MainDrawer after successful login.
How can i achieve that?










share|improve this question























  • What is Preconfig?

    – m0skit0
    Nov 16 '18 at 18:50











  • it is a kind of variable

    – vst dell
    Nov 16 '18 at 18:51











  • I mean the class PreConfig, not the variable.

    – m0skit0
    Nov 16 '18 at 18:52













  • with the use of that we can access our script result here in my case used to get the results from db files(scripts)

    – vst dell
    Nov 16 '18 at 18:55













  • Ok, then what is readLoginStatus() for? What is the meaning of the boolean value it is returning?

    – m0skit0
    Nov 16 '18 at 18:56














0












0








0








I am developing an Android application by using MySQL. There i am using a class called selector.java which perform the navigation for login and registration.



selector.java



import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class Selector extends AppCompatActivity
{
public static PreConfig preConfig;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
preConfig = new PreConfig(this);
if(preConfig.readLoginStatus())
{
Intent i = new Intent(this,sample.class);
startActivity(i);
}
else
{
Intent intentList = new
Intent(this,MainDrawer.class);
startActivity(intentList);
}
}
}


in the above scenario it will redirect me to the MainDrawer.class straightly but i need to navigate to MainDrawer.class once the login is successful.



If i will change the above code as follows then it wont show up the MainDrawer after the successful log in



 if(preConfig.readLoginStatus())
{
Intent i = new Intent(this,sample.class);
startActivity(i);

}
else
{
Intent i = new Intent(this,LoginActivity.class);
startActivity(i);
}
}


MainDrawer.java



import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

public class MainDrawer extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

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


Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this,drawer,toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView)
findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed(){
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if(drawer.isDrawerOpen(GravityCompat.START)){
drawer.closeDrawer(GravityCompat.START);
}
else{
super.onBackPressed();
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.nav_drawer, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
int id = item.getItemId();

if(id == R.id.action_settings ){
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
public boolean onNavigationItemSelected(MenuItem item){
DrawerLayout drawer = (DrawerLayout)
findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}


Sample.java



import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
import com.google.firebase.iid.FirebaseInstanceId;

public class sample extends AppCompatActivity {

public String printMyFCMToken()
{
Log.e("FCM Token=",""+ FirebaseInstanceId.getInstance().getToken());
return FirebaseInstanceId.getInstance().getToken();
}

}


Now i want to navigate to MainDrawer after successful login.
How can i achieve that?










share|improve this question














I am developing an Android application by using MySQL. There i am using a class called selector.java which perform the navigation for login and registration.



selector.java



import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class Selector extends AppCompatActivity
{
public static PreConfig preConfig;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
preConfig = new PreConfig(this);
if(preConfig.readLoginStatus())
{
Intent i = new Intent(this,sample.class);
startActivity(i);
}
else
{
Intent intentList = new
Intent(this,MainDrawer.class);
startActivity(intentList);
}
}
}


in the above scenario it will redirect me to the MainDrawer.class straightly but i need to navigate to MainDrawer.class once the login is successful.



If i will change the above code as follows then it wont show up the MainDrawer after the successful log in



 if(preConfig.readLoginStatus())
{
Intent i = new Intent(this,sample.class);
startActivity(i);

}
else
{
Intent i = new Intent(this,LoginActivity.class);
startActivity(i);
}
}


MainDrawer.java



import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

public class MainDrawer extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

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


Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this,drawer,toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView)
findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed(){
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if(drawer.isDrawerOpen(GravityCompat.START)){
drawer.closeDrawer(GravityCompat.START);
}
else{
super.onBackPressed();
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.nav_drawer, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
int id = item.getItemId();

if(id == R.id.action_settings ){
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
public boolean onNavigationItemSelected(MenuItem item){
DrawerLayout drawer = (DrawerLayout)
findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}


Sample.java



import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
import com.google.firebase.iid.FirebaseInstanceId;

public class sample extends AppCompatActivity {

public String printMyFCMToken()
{
Log.e("FCM Token=",""+ FirebaseInstanceId.getInstance().getToken());
return FirebaseInstanceId.getInstance().getToken();
}

}


Now i want to navigate to MainDrawer after successful login.
How can i achieve that?







android android-studio android-navigation-drawer android-navigation android-drawer






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 16 '18 at 18:42









vst dellvst dell

96




96













  • What is Preconfig?

    – m0skit0
    Nov 16 '18 at 18:50











  • it is a kind of variable

    – vst dell
    Nov 16 '18 at 18:51











  • I mean the class PreConfig, not the variable.

    – m0skit0
    Nov 16 '18 at 18:52













  • with the use of that we can access our script result here in my case used to get the results from db files(scripts)

    – vst dell
    Nov 16 '18 at 18:55













  • Ok, then what is readLoginStatus() for? What is the meaning of the boolean value it is returning?

    – m0skit0
    Nov 16 '18 at 18:56



















  • What is Preconfig?

    – m0skit0
    Nov 16 '18 at 18:50











  • it is a kind of variable

    – vst dell
    Nov 16 '18 at 18:51











  • I mean the class PreConfig, not the variable.

    – m0skit0
    Nov 16 '18 at 18:52













  • with the use of that we can access our script result here in my case used to get the results from db files(scripts)

    – vst dell
    Nov 16 '18 at 18:55













  • Ok, then what is readLoginStatus() for? What is the meaning of the boolean value it is returning?

    – m0skit0
    Nov 16 '18 at 18:56

















What is Preconfig?

– m0skit0
Nov 16 '18 at 18:50





What is Preconfig?

– m0skit0
Nov 16 '18 at 18:50













it is a kind of variable

– vst dell
Nov 16 '18 at 18:51





it is a kind of variable

– vst dell
Nov 16 '18 at 18:51













I mean the class PreConfig, not the variable.

– m0skit0
Nov 16 '18 at 18:52







I mean the class PreConfig, not the variable.

– m0skit0
Nov 16 '18 at 18:52















with the use of that we can access our script result here in my case used to get the results from db files(scripts)

– vst dell
Nov 16 '18 at 18:55







with the use of that we can access our script result here in my case used to get the results from db files(scripts)

– vst dell
Nov 16 '18 at 18:55















Ok, then what is readLoginStatus() for? What is the meaning of the boolean value it is returning?

– m0skit0
Nov 16 '18 at 18:56





Ok, then what is readLoginStatus() for? What is the meaning of the boolean value it is returning?

– m0skit0
Nov 16 '18 at 18:56












1 Answer
1






active

oldest

votes


















0














1.From above code didn't get what is Sample.java I think you have created it for registrationActivity.
2.Assuming the prefConfig is kind of SharedPreference/db result where you are checking the status of login
3.Just add one more method to check if user is already registred or not. and then navigate to registrationActivity or login
You can use below logic and check if it fulfill what you need.



if(preconfig.isLoggedIn()){
intent to MainActivity / (MainDrawer)
}else if(preconfig.isUserRegistered()){
intent to LoginActivity()
}else{
intent to RegistrationActivity() / (Sample)
}





share|improve this answer
























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53343649%2fhow-to-perform-the-navigation-in-android-studio%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    1.From above code didn't get what is Sample.java I think you have created it for registrationActivity.
    2.Assuming the prefConfig is kind of SharedPreference/db result where you are checking the status of login
    3.Just add one more method to check if user is already registred or not. and then navigate to registrationActivity or login
    You can use below logic and check if it fulfill what you need.



    if(preconfig.isLoggedIn()){
    intent to MainActivity / (MainDrawer)
    }else if(preconfig.isUserRegistered()){
    intent to LoginActivity()
    }else{
    intent to RegistrationActivity() / (Sample)
    }





    share|improve this answer




























      0














      1.From above code didn't get what is Sample.java I think you have created it for registrationActivity.
      2.Assuming the prefConfig is kind of SharedPreference/db result where you are checking the status of login
      3.Just add one more method to check if user is already registred or not. and then navigate to registrationActivity or login
      You can use below logic and check if it fulfill what you need.



      if(preconfig.isLoggedIn()){
      intent to MainActivity / (MainDrawer)
      }else if(preconfig.isUserRegistered()){
      intent to LoginActivity()
      }else{
      intent to RegistrationActivity() / (Sample)
      }





      share|improve this answer


























        0












        0








        0







        1.From above code didn't get what is Sample.java I think you have created it for registrationActivity.
        2.Assuming the prefConfig is kind of SharedPreference/db result where you are checking the status of login
        3.Just add one more method to check if user is already registred or not. and then navigate to registrationActivity or login
        You can use below logic and check if it fulfill what you need.



        if(preconfig.isLoggedIn()){
        intent to MainActivity / (MainDrawer)
        }else if(preconfig.isUserRegistered()){
        intent to LoginActivity()
        }else{
        intent to RegistrationActivity() / (Sample)
        }





        share|improve this answer













        1.From above code didn't get what is Sample.java I think you have created it for registrationActivity.
        2.Assuming the prefConfig is kind of SharedPreference/db result where you are checking the status of login
        3.Just add one more method to check if user is already registred or not. and then navigate to registrationActivity or login
        You can use below logic and check if it fulfill what you need.



        if(preconfig.isLoggedIn()){
        intent to MainActivity / (MainDrawer)
        }else if(preconfig.isUserRegistered()){
        intent to LoginActivity()
        }else{
        intent to RegistrationActivity() / (Sample)
        }






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 16 '18 at 19:09









        GkmGkm

        12




        12
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53343649%2fhow-to-perform-the-navigation-in-android-studio%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Xamarin.iOS Cant Deploy on Iphone

            Glorious Revolution

            Dulmage-Mendelsohn matrix decomposition in Python