Grundaufbau der App
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / search / SearchTarget.java
1 package de.dhbwloe.campusapp.search;
2
3 import android.os.Bundle;
4
5 import java.net.URLDecoder;
6 import java.net.URLEncoder;
7
8 import de.dhbwloe.campusapp.NavigationManager;
9
10 /**
11  * Created by pk910 on 19.01.2016.
12  */
13 public class SearchTarget {
14     private boolean bInAppTarget = false;
15     private String sTargetUrl = null;
16     private Bundle oArguments = new Bundle();
17
18     public SearchTarget(String target) {
19         if(target.startsWith("#")) { // InApp Navigation
20             bInAppTarget = true;
21             target = target.substring(1);
22         }
23         String[] parts = target.split("#", 2);
24         if(parts.length != 0)
25             sTargetUrl = parts[0];
26         if(parts.length > 1) {
27             // parse arguments?
28             String[] args = parts[1].split("&");
29             for(int i = 0; i < args.length; i++) {
30                 String[] arg = args[i].split("=");
31                 try {
32                     if (arg.length == 2)
33                         oArguments.putString(URLDecoder.decode(arg[0], "UTF-8"), URLDecoder.decode(arg[1], "UTF-8"));
34                     else
35                         oArguments.putBoolean(URLDecoder.decode(arg[0], "UTF-8"), true);
36                 } catch(Exception e) {}
37             }
38         }
39
40     }
41
42     public SearchTarget() {
43     }
44
45     public boolean isInAppTarget() {
46         return bInAppTarget;
47     }
48
49     public void setInAppTarget(boolean inAppTarget) {
50         bInAppTarget = inAppTarget;
51     }
52
53     public String getTargetUrl() {
54         return sTargetUrl;
55     }
56
57     public void setTargetUrl(String url) {
58         sTargetUrl = url;
59     }
60
61     public void setArgument(String name, String value) {
62         oArguments.putString(name, value);
63     }
64
65     public void navigate(NavigationManager navigationManager) {
66         Bundle args = oArguments;
67         if(bInAppTarget)
68             navigationManager.navigatePage(sTargetUrl, args);
69         else {
70             args.putString("url", sTargetUrl);
71             navigationManager.navigatePage("WebBrowser", args, false);
72         }
73     }
74 }