Fully translated.

Added some vector graphic designs.
Added full tabbing functionality.
This commit is contained in:
Gabriel Tofvesson 2016-02-25 22:52:17 +01:00
parent 0243c68ae3
commit ee19696a0f
10 changed files with 201 additions and 99 deletions

View File

@ -9,41 +9,46 @@ 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.Gravity;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.github.amlcurran.showcaseview.OnShowcaseEventListener;
import com.github.amlcurran.showcaseview.ShowcaseView;
import com.github.amlcurran.showcaseview.targets.ActionItemTarget;
import com.github.amlcurran.showcaseview.targets.PointTarget;
import com.github.amlcurran.showcaseview.targets.ViewTarget;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
private Toolbar toolbar;
private ActionBarDrawerToggle toggle;
private int introCounter;
private ShowcaseView overlay;
private static final String TAG_INFO_STAGE="info_stage";
private static final String TAG_NAVIGATION_STAGE="nav_stage";
private int viewStage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
introCounter=0;
viewStage=(savedInstanceState!=null) ? savedInstanceState.getInt(TAG_NAVIGATION_STAGE) : 0;
System.out.println("Got stage with value: "+viewStage);
introCounter=(savedInstanceState!=null) ? savedInstanceState.getInt(TAG_INFO_STAGE) : 0;
System.out.println("Got counter with value: "+introCounter);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close){
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
if(overlay==null) drawer.closeDrawer(GravityCompat.START);
else overlay.hide();
if (introCounter<1) drawer.closeDrawer(GravityCompat.START);
else if(overlay!=null) overlay.hide();
}
};
drawer.setDrawerListener(toggle);
@ -51,89 +56,89 @@ public class MainActivity extends AppCompatActivity
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
new Thread(new Runnable() {@Override public void run() {
try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}
new Handler(Looper.getMainLooper()).post(new Runnable() {@Override public void run() {intro();}});}}).start();
findViewById(R.id.main).setVisibility(View.GONE);
if(introCounter<2)
new Thread(new Runnable() {
@Override
public void run() {
try {if(introCounter==0) Thread.sleep(1000);
} catch (InterruptedException e) {e.printStackTrace();}
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {intro();
}
});}}).start();
else {
if(viewStage<2) {
LayoutInflater l = getLayoutInflater();
View v = l.inflate(R.layout.dynamic_welcome, (RelativeLayout) findViewById(R.id.main_parent));
v.findViewById(R.id.arrow).startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.arrow_anim));
viewStage = 1;
}else if (viewStage == 2) loadCorrespondingView(R.id.nav_question1);
else if (viewStage == 3) loadCorrespondingView(R.id.nav_question2);
else loadCorrespondingView(R.id.nav_question3);
}
}
public void intro(){
if(introCounter==0){
++introCounter;
new ShowcaseView.Builder(this)
.replaceEndButton((Button) getLayoutInflater().inflate(R.layout.got_it, (RelativeLayout) findViewById(R.id.main_parent), false))
.setContentTitle("Welcome")
.setContentTitle(getResources().getText(R.string.welcome))
.setContentText(getResources().getText(R.string.welcome1))
// .replaceEndButton((Button) getLayoutInflater().inflate(R.layout.bye_button, (RelativeLayout) findViewById(R.id.main_parent), false))
.setShowcaseEventListener(new OnShowcaseEventListener(){
@Override
public void onShowcaseViewHide(ShowcaseView showcaseView) {
}
public void onShowcaseViewHide(ShowcaseView showcaseView) {}
@Override
public void onShowcaseViewDidHide(ShowcaseView showcaseView) {
++introCounter;
new Thread(new Runnable() {@Override public void run() {
try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}
try {Thread.sleep(750);} catch (InterruptedException e) {e.printStackTrace();}
new Handler(Looper.getMainLooper()).post(new Runnable() {@Override public void run() {intro();}
});
}}).start();
}
@Override
public void onShowcaseViewShow(ShowcaseView showcaseView) {
}
public void onShowcaseViewShow(ShowcaseView showcaseView) {}
@Override
public void onShowcaseViewTouchBlocked(MotionEvent motionEvent) {
}
public void onShowcaseViewTouchBlocked(MotionEvent motionEvent) {}
})
.build();
}else if(introCounter==1){
++introCounter;
overlay = new ShowcaseView.Builder(this).replaceEndButton(R.layout.got_it)
.setTarget(new PointTarget(50, 60))
.replaceEndButton((Button) getLayoutInflater().inflate(R.layout.got_it, (RelativeLayout) findViewById(R.id.main_parent), false))
.setContentTitle("Instructions")
.setContentTitle(getResources().getText(R.string.introduction))
.setContentText(getResources().getText(R.string.welcome2) + "\n" + getResources().getText(R.string.signoff))
.setShowcaseEventListener(new OnShowcaseEventListener() {
@Override
public void onShowcaseViewHide(ShowcaseView showcaseView) {
}
@Override
public void onShowcaseViewDidHide(ShowcaseView showcaseView) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
new Handler(Looper.getMainLooper()).post(new Runnable() {
++introCounter;
toolbar.postDelayed(new Runnable() {
@Override
public void run() {
intro();
}
});
}
}).start();
}, 250);
}
@Override
public void onShowcaseViewShow(ShowcaseView showcaseView) {
}
@Override
public void onShowcaseViewTouchBlocked(MotionEvent motionEvent) {
}
})
.build();
}else if(introCounter==2){
LayoutInflater l = getLayoutInflater();
View v = l.inflate(R.layout.dynamic_welcome, (RelativeLayout) findViewById(R.id.main_parent));
v.findViewById(R.id.arrow).startAnimation(AnimationUtils.loadAnimation(getApplicationContext(), R.anim.arrow_anim));
viewStage = 1;
}
}
@Override
@ -146,24 +151,41 @@ public class MainActivity extends AppCompatActivity
}
}
@Override
public void onSaveInstanceState(Bundle b){
b.putInt(TAG_INFO_STAGE, introCounter);
System.out.println("Stored counter: " + introCounter);
b.putInt(TAG_NAVIGATION_STAGE, viewStage);
System.out.println("Stored stage: "+viewStage);
super.onSaveInstanceState(b);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
if(viewStage==0) return false;
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_camera) {
// Handle the camera action
} else if (id == R.id.nav_gallery) {
} else if (id == R.id.nav_slideshow) {
} else if (id == R.id.nav_manage) {
}
loadCorrespondingView(item.getItemId());
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
private void loadCorrespondingView(int id){
((RelativeLayout) findViewById(R.id.main_parent)).removeAllViewsInLayout();
RelativeLayout v = (RelativeLayout) getLayoutInflater().inflate(R.layout.dynamic_answer, ((RelativeLayout) findViewById(R.id.main_parent)));
if (id == R.id.nav_question1) {
viewStage=2;
((TextView) v.findViewById(R.id.question)).setText(getResources().getText(R.string.question1));
((TextView) v.findViewById(R.id.answer)).setText(getResources().getText(R.string.answer1));
} else if (id == R.id.nav_question2) {
viewStage=3;
((TextView) v.findViewById(R.id.question)).setText(getResources().getText(R.string.question2));
((TextView) v.findViewById(R.id.answer)).setText(getResources().getText(R.string.answer2));
} else if (id == R.id.nav_question3) {
viewStage=4;
((TextView) v.findViewById(R.id.question)).setText(getResources().getText(R.string.question3));
((TextView) v.findViewById(R.id.answer)).setText(getResources().getText(R.string.answer3));
}
}
}

View File

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0"
android:toXDelta="50"
android:duration="1000"
android:repeatCount="2"/>
android:duration="750"
android:repeatCount="infinite"/>
</set>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="12sp"
android:height="21sp"
android:viewportHeight="21.0"
android:viewportWidth="12.0">
<path android:fillColor="#FF000000"
android:pathData="M0 6 L2 7 L7 1 L5 0"/>
<path android:fillColor="#FF000000"
android:pathData="M5 0 L7 0 L7 20 L5 20"/>
<path android:fillColor="#FF000000"
android:pathData="M0 19 L12 19 L12 21 L0 21"/>
</vector>

View File

@ -3,10 +3,8 @@
android:height="24sp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<group android:name="vector_arrow">
<path android:fillColor="#FF000000"
android:pathData="M0 6 L0 12 L16 12 L16 6 Z"/>
<path android:fillColor="#FF000000"
android:pathData="M16 0 L16 18 L24 9"/>
</group>
</vector>

View File

@ -12,26 +12,4 @@
tools:context="com.gabriel.buddhism.MainActivity"
tools:showIn="@layout/app_bar_main"
android:id="@+id/main_parent">
<RelativeLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="@string/swipe"
android:id="@+id/swipe"/>
<ImageView
android:id="@+id/arrow"
android:layout_marginStart="10sp"
android:layout_marginLeft="10sp"
android:layout_marginTop="15sp"
android:layout_below="@id/swipe"
android:layout_width="50sp"
android:layout_height="wrap_content"
android:src="@drawable/swipe_arrow"
android:scaleType="fitCenter"
android:adjustViewBounds="true"/>
</RelativeLayout>
</RelativeLayout>

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/response_view">
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/question"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="25sp"
android:textColor="@android:color/white"/>
<TextView
android:id="@+id/answer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/question"
android:layout_marginTop="10sp"
android:textSize="20sp"/>
</RelativeLayout>
</ScrollView>
</LinearLayout>

View File

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="22sp"
android:text="@string/swipe"
android:id="@+id/swipe"/>
<ImageView
android:id="@+id/arrow"
android:layout_margin="10sp"
android:layout_below="@id/swipe"
android:layout_width="50sp"
android:layout_height="wrap_content"
android:contentDescription="@string/sttr"
android:src="@drawable/swipe_arrow"
android:scaleType="fitCenter"
android:adjustViewBounds="true"/>
<TextView
android:id="@+id/lang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/arrow"
android:layout_marginTop="10sp"
android:textSize="22sp"
android:text="@string/lang"/>
<TextView
android:id="@+id/lang_en"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/lang"
android:layout_marginStart="10sp"
android:layout_marginLeft="10sp"
android:layout_marginTop="15sp"
android:padding="5sp"
android:background="@android:color/holo_blue_dark"
android:textSize="30sp"
android:text="@string/lang_en"/>
<TextView
android:id="@+id/lang_sv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/lang_en"
android:layout_marginStart="10sp"
android:layout_marginLeft="10sp"
android:layout_marginTop="15sp"
android:padding="5sp"
android:background="@android:color/holo_blue_dark"
android:textSize="30sp"
android:text="@string/lang_sv"/>
</RelativeLayout>

View File

@ -3,21 +3,17 @@
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_camera"
android:id="@+id/nav_question1"
android:icon="@drawable/ic_menu_camera"
android:title="Import" />
<item
android:id="@+id/nav_gallery"
android:id="@+id/nav_question2"
android:icon="@drawable/ic_menu_gallery"
android:title="Gallery" />
<item
android:id="@+id/nav_slideshow"
android:id="@+id/nav_question3"
android:icon="@drawable/ic_menu_slideshow"
android:title="Slideshow" />
<item
android:id="@+id/nav_manage"
android:icon="@drawable/ic_menu_manage"
android:title="Tools" />
</group>
</menu>

View File

@ -12,4 +12,11 @@
<string name="answer1">Buddhismen skapades någon gång runt 500 före Kristus i nuvarande Nepal. Den grundades av Gautama Buddha. Den framför många intressanta livsideologier som t.ex. ideologin om Karma samt Nirvana. Karma är i detta fall en summa av allt du har gjort eller tänkt och Nirvana är ett tillstånd där man är befriad från sin livstörst och egoism. Nirvana betyder ”att blåsas ut” eller ”släckas” som en låga. Likaså i Hinduismen finns det Karma och Moksha som fungerar på liknande sätt, där Karma än en gång är summan av allt du gör i ditt liv och Moksha är ett tillstånd av befrielse från livets pseudo-eviga cykel. Hinduismen skapades någon gång runt 1900 före Kristus och med tanke på dess geografiska position så är det definitivt möjligt att Buddhismen baserade många av dess ideologier på de som Hinduismen hade framfört. Å ena sidan verkar dessa aspekter av respektive religion vara nästan ekvivalenta, med tanke på att de båda ser på Nirvana respektive Moksha som en sorts befrielse. Men å andra sidan ser Hinduismen Moksha som en befrielse från att vara mänsklig; att man som individ blir en del av Brahman (d.v.s. världssjälen). Till skillnad från Hinduismen, ser Buddhismen på Nirvana som en sorts uppenbarelse: att man förstår att det inte finns något ”jag”. På detta sätt kan man se att de två religionerna skiljer sig åt väldigt mycket, då en fokuserar på en som individ och vad en som individ kan åstadkomma, medan den andra fokuserar på att påvisa för lärlingar att det inte finns någon individ d.v.s. att alla är en del av samma sak. Samtidigt som de skiljer sig åt så kan man ändå påvisa att de fortfarande liknar varandra, då Hinduismen dessutom talar om Brahman som en världssjäl som man åter blir en med när man bryter sig ur Samsara. Hinduismen talar om att en liten bit av Brahman finns i alla människor, denna bit kallas för Atman.</string>
<string name="answer2">Inom både Theravada- och Mahayana-inriktningarna av Buddhismen anses Nirvana vara ett abstrakt tillstånd av uppenbarelse och klarhet vilket dessutom innebär att man brutit sig ur Samsara (d.v.s. livets pseudo-eviga cykel). Båda inriktningarna talar dessutom om steg eller vägar för att uppnå Nirvana. Å ena sidan verkar de ha liknande steg för att uppnå Nirvana. Å andra sidan så beskriver Mahayana dessa vägar som ”fem vägar” som en troende följer som leder denne genom tio ”steg” eller ”nivåer” som leder till Nirvana, medan Theravada talar om fyra steg som slutar i att den troende blir en ”arhat” och har då flytt de tio ”fetter” (kedjor, eller något som håller en grundad/fast). Detta innebär att Theravada anser att Nirvana är flykt från livet medan Mahayana anser att det är något som man har jobbat hårt för att uppnå. (Det är dessutom värt att påpeka att Mahayana inte anser att Nirvana är det ultimata steget och att de tror på att den som uppnått Nirvana kommer att återvända för att befria andra varelser från Samsara).</string>
<string name="answer3">Å ena sidan kan livstörst referera till att man som människa vill fortsätta återskapas efter döden, eller att man inte vill dö. Beroende på vilket man tror att det är kan lidandet antingen vara att man aldrig kan bli uppenbarad i Nirvana, och att man alltid kommer att vara blind på grund av sin mänsklighet (egoism, icke-vetande, skadligt beteende vare sig p.g.a. har man agerar eller hur man talar, etc.), eller eftersom man lever i konstant farhåga av att man dör, vilket också kan anses vara mänskligt och betyder också att man inte kommer att uppnå Nirvana.</string>
<string name="lang">Om det är något som du anser vara nödvändigt, kan du ändra språket</string>
<string name="sttr">Dra åt höger</string>
<string name="swipe">Dra från den vänstra sidan av skärmen</string>
<string name="lang_en">Engelska</string>
<string name="lang_sv">Svenska</string>
<string name="introduction">Introduktion</string>
<string name="welcome">Välkommen</string>
</resources>

View File

@ -1,6 +1,5 @@
<resources>
<string name="app_name" translatable="false">Buddhism</string>
<string name="navigation_drawer_open">Open navigation drawer</string>
<string name="navigation_drawer_close">Close navigation drawer</string>
<string name="welcome1">Hello!\nThis application was designed with the express intent of giving the answers to three distinct questions regarding Buddhism assigned to me (and the rest of my class) by Helena Sontag.</string>
@ -14,4 +13,10 @@
<string name="answer2">In both the Theravada and Mahayana subsets of the religion, Nirvana is considered to be an abstract state of being where judgement cant be made and “one” is truly enlightened. Both subsets speak of steps that one takes to achieve such a state which on one hand makes them similar, though on the other hand the different subsets speak very differently about how one reaches Nirvana despite the similar names. For example: The Mahayana subset explains that one must follow the five paths that lead through ten steps to enlightenment and that one by the end will have reached Nirvana. It is also definitely worth mentioning that the Mahayana subset doesnt consider Nirvana to be a final destination, but rather a conduit allowing an enlightened to return to earth to free other creatures. As opposed to Mahayana, Theravada explains that one must follow four steps to become arhat (enlightened) which implies that the follower has been freed from the ten fetters (shackles of humanity). This means that Theravada considers Nirvana to be a final destination, a resting place after a hard life, while Mahayana sees Nirvana as a pathway for the enlightened to follow to help others reach it.</string>
<string name="answer3">On one hand, thirst for life could mean that a person doesnt want to die and perpetually attempt to avoid it at all costs. On the other hand, it could refer to someone who doesnt want to be enlightened and therefore willingly continues being re-born. Either way, they both follow a path of fear and/or general non-enlightenment and keep it that way, meaning that they could never reach Nirvana. As Nirvana is an almost direct opposite to life, as it implies no re-birth and no Karma, it could be argued that Nirvana is what Buddha meant by “true joy”. It is, though, this juxtaposition between Nirvana and life delimited by a thin line that is death that may deter certain individuals from attaining such a state of mind such that they would reach Nirvana. This could mean that Nirvana is both the cause and solution to the fact that life is suffering, as it is the sole reason for why some individuals want to continue living.</string>
<string name="swipe">Swipe from the left of your screen</string>
<string name="sttr">Swipe to the right</string>
<string name="lang">If you are so inclined, you may select another language</string>
<string name="lang_en">English</string>
<string name="lang_sv">Swedish</string>
<string name="welcome">Welcome</string>
<string name="introduction">Introduction</string>
</resources>