build: Upgrade underlying NFD/ndn-cxx to 0.7.0

Change-Id: I3b0b3a6c5b64ce821ca5a0f7831220d01594fa70
diff --git a/.jenkins.d/10-get-sdk.sh b/.jenkins.d/10-get-sdk.sh
index 8d02423..2d4ccaf 100755
--- a/.jenkins.d/10-get-sdk.sh
+++ b/.jenkins.d/10-get-sdk.sh
@@ -6,15 +6,18 @@
 
 mkdir -p $SDK
 cd $SDK
-wget -q https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
-unzip sdk-tools-linux-3859397.zip
-rm sdk-tools-linux-3859397.zip
+
+wget https://dl.google.com/android/repository/commandlinetools-linux-6514223_latest.zip
+unzip commandlinetools-linux-6514223_latest.zip
+rm commandlinetools-linux-6514223_latest.zip
+mkdir -p cmdline-tools
+mv tools cmdline-tools/latest
 
 export ANDROID_HOME=`pwd`
-export PATH=${PATH}:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools
+export PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools
 
 echo "y" | sdkmanager "platform-tools"
-sdkmanager "platforms;android-28"
+sdkmanager "platforms;android-29"
 
 cd ..
 
diff --git a/.jenkins.d/20-get-ndk.sh b/.jenkins.d/20-get-ndk.sh
index df8bd88..3c6ed18 100755
--- a/.jenkins.d/20-get-ndk.sh
+++ b/.jenkins.d/20-get-ndk.sh
@@ -2,7 +2,7 @@
 set -e
 set -x
 
-android-sdk-linux/tools/bin/sdkmanager "ndk-bundle"
+android-sdk-linux/cmdline-tools/latest/bin/sdkmanager "ndk-bundle"
 git clone https://github.com/named-data-mobile/android-crew-staging.git android-sdk-linux/ndk-bundle/crew.dir
 
 if [[ ! -z $GEM_PATH ]]; then
diff --git a/.vagrant/Vagrantfile b/.vagrant/Vagrantfile
index 46b4c75..27df1f4 100644
--- a/.vagrant/Vagrantfile
+++ b/.vagrant/Vagrantfile
@@ -14,15 +14,17 @@
 
     mkdir android-sdk-linux
     cd android-sdk-linux
-    wget -q https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
-    unzip sdk-tools-linux-3859397.zip
-    rm sdk-tools-linux-3859397.zip
+    mkdir -p cmdline-tools
+    mv tools cmdline-tools/latest
+    wget https://dl.google.com/android/repository/commandlinetools-linux-6514223_latest.zip
+    unzip commandlinetools-linux-6514223_latest.zip
+    rm commandlinetools-linux-6514223_latest.zip
 
     export ANDROID_HOME=`pwd`
-    export PATH=${PATH}:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools
+    export PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools
 
     echo "y" | sdkmanager "platform-tools"
-    sdkmanager "platforms;android-28" "ndk-bundle"
+    sdkmanager "platforms;android-29" "ndk-bundle"
 
     cd ndk-bundle
     git clone https://github.com/named-data-mobile/android-crew-staging.git crew.dir
@@ -38,7 +40,7 @@
 SCRIPT
 
 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
-  config.vm.box = "puphpet/ubuntu1604-x64"
+  config.vm.box = "bento/ubuntu-18.04"
 
   config.vm.provision "shell", privileged: false, inline: $script
 
diff --git a/README.md b/README.md
index 2ccb0a7..7f69ca9 100644
--- a/README.md
+++ b/README.md
@@ -7,26 +7,28 @@
 
 To compile code, the following is necessary
 
-- Recent version of [Android SDK](http://developer.android.com/sdk/index.html)
+- Recent version of [Android command line tools](http://developer.android.com/sdk/index.html)
 
-Example script for Ubuntu 16.04 to get all dependencies, download SDK and NDK:
+Example script for Ubuntu 18.04 to get all dependencies, download SDK and NDK:
 
     sudo apt -q update
     sudo apt -qy upgrade
     sudo apt-get install -y build-essential git openjdk-8-jdk unzip ruby ruby-rugged
     sudo apt-get install -y lib32stdc++6 lib32z1 lib32z1-dev
 
-    mkdir android-sdk-linux
-    cd android-sdk-linux
-    wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
-    unzip sdk-tools-linux-3859397.zip
-    rm sdk-tools-linux-3859397.zip
+    mkdir android
+    cd android
+    mkdir -p cmdline-tools
+    mv tools cmdline-tools/latest
+    wget https://dl.google.com/android/repository/commandlinetools-linux-6514223_latest.zip
+    unzip commandlinetools-linux-6514223_latest.zip
+    rm commandlinetools-linux-6514223_latest.zip
 
     export ANDROID_HOME=`pwd`
-    export PATH=${PATH}:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools
+    export PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools
 
     echo "y" | sdkmanager "platform-tools"
-    sdkmanager "platforms;android-28" "ndk-bundle"
+    sdkmanager "platforms;android-29" "ndk-bundle"
 
     cd ndk-bundle
     git clone https://github.com/named-data-mobile/android-crew-staging crew.dir
diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst
index c173dc7..6c76122 100644
--- a/RELEASE_NOTES.rst
+++ b/RELEASE_NOTES.rst
@@ -1,40 +1,72 @@
-NFD-Android version 0.2.3
--------------------------
+Version 0.7.0-1
+---------------
+
+NFD and ndn-cxx updated to version 0.7.0
+
+Version 0.6.6-1
+---------------
+
+- Add option to enable unsolicited data caching
+- Upgrade NFD/ndn-cxx to version 0.6.6
+- Switch to Boost 1.70.0
+
+Version 0.6.5-3
+---------------
+
+- A new bottom navigation menu
+- A new nicer style for the drawer navigation menu
+- Fix bug with ping unexpectedly starting after reopening app
+- Fix crash if pressing HOME key while ping client is running
+- Codebase transitioned to AndroidX framework
+
+Version 0.6.5-2
+---------------
+
+Enable localhop registrations, so self-learning strategy can work
+
+Version 0.6.5-1
+---------------
+
+- Upgrade NFD/ndn-cxx to version 0.6.5
+- Persistent notification and run NfdService in foreground to improve stability
+- Multicast face support
+- Creation of a route using FaceId
+
+Version 0.6.2-1
+---------------
+
+Update NFD to version 0.6.2-11-gd657d53
+
+Version 0.3.0
+-------------
+
+- Upgrade NFD/ndn-cxx to version 0.6.0
+- Add support for NDN-FCH hub discovery
+
+Version 0.2.3
+-------------
 
 - WiFi Direct connectivity helper
 - NDN ping client
 - Permanent face and route management mechanisms
 
-NFD-Android version 0.2.2
--------------------------
+Version 0.2.2
+-------------
 
 - NFD updated to version 0.5.0
 - Add route deletion GUI
 
-NFD-Android version 0.2.1
--------------------------
-
-Release date: February 29, 2016
-
-Updates
-~~~~~~~
+Version 0.2.1
+-------------
 
 - NFD updated to version 0.4.0-3-g4100646
 - ndn-cxx updated to version 0.4.0-4-g6617e49
 - jndn updated to version 0.10
 - jndn-management updated to version 1.1.0
-
-Bug fixes
-~~~~~~~~~
-
 - Fix creation of routes for ndn:/ (Issue #3399)
 
-NFD-Android version 0.1
------------------------
-
-Release date: January 6, 2016
-
-Based on:
+Version 0.1
+-----------
 
 - NFD version 0.3.4-16-g441ba21
 - ndn-cxx version 0.3.4-9-g80b68e1
diff --git a/app/build.gradle b/app/build.gradle
index 7de47dd..ed87e86 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@
         applicationId "net.named_data.nfd"
         minSdkVersion 23
         targetSdkVersion 29
-        versionCode 4013
-        versionName "0.6.6-1 (NFD 0.6.6)"
+        versionCode 4018
+        versionName "0.7.0-1 (NFD 0.7.0)"
         multiDexEnabled true
     }
     compileOptions {
diff --git a/app/src/main/java/net/named_data/nfd/MainActivity.java b/app/src/main/java/net/named_data/nfd/MainActivity.java
index a6824c2..b36cad4 100644
--- a/app/src/main/java/net/named_data/nfd/MainActivity.java
+++ b/app/src/main/java/net/named_data/nfd/MainActivity.java
@@ -1,6 +1,6 @@
 /* -*- Mode:jde; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2015-2019 Regents of the University of California
+ * Copyright (c) 2015-2020 Regents of the University of California
  * <p/>
  * This file is part of NFD (Named Data Networking Forwarding Daemon) Android.
  * See AUTHORS.md for complete list of NFD Android authors and contributors.
@@ -28,6 +28,8 @@
 import com.intel.jndn.management.types.FaceStatus;
 import com.intel.jndn.management.types.RibEntry;
 
+import net.named_data.jndn.encoding.Tlv0_3WireFormat;
+import net.named_data.jndn.encoding.WireFormat;
 import net.named_data.nfd.utils.G;
 import net.named_data.nfd.wifidirect.utils.NDNController;
 
@@ -48,6 +50,8 @@
 
   @Override
   protected void onCreate(Bundle savedInstanceState) {
+    WireFormat.setDefaultWireFormat(Tlv0_3WireFormat.get());
+
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
 
diff --git a/app/src/main/java/net/named_data/nfd/RouteInfoFragment.java b/app/src/main/java/net/named_data/nfd/RouteInfoFragment.java
index f20ee18..43bef32 100644
--- a/app/src/main/java/net/named_data/nfd/RouteInfoFragment.java
+++ b/app/src/main/java/net/named_data/nfd/RouteInfoFragment.java
@@ -1,6 +1,6 @@
 /* -*- Mode:jde; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2015-2019 Regents of the University of California
+ * Copyright (c) 2015-2020 Regents of the University of California
  * <p/>
  * This file is part of NFD (Named Data Networking Forwarding Daemon) Android.
  * See AUTHORS.md for complete list of NFD Android authors and contributors.
@@ -19,6 +19,7 @@
 
 package net.named_data.nfd;
 
+import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.content.Context;
 import android.os.AsyncTask;
@@ -325,6 +326,7 @@
       return m_ribEntry.getRoutes().get(position).getFaceId();
     }
 
+    @SuppressLint("SetTextI18n")
     @Override
     public View getView(int position, View convertView, ViewGroup parent) {
       ListItemHolder holder;
@@ -345,7 +347,12 @@
 
       if (m_faces != null) {
         FaceStatus status = m_faces.get(r.getFaceId());
-        faceInfo += " (" + status.getRemoteUri() + ")";
+        if (status != null) {
+          faceInfo += " (" + status.getRemoteUri() + ")";
+        }
+        else {
+          faceInfo += " (ERROR: face not found)";
+        }
       }
 
       holder.m_title.setText(faceInfo);
diff --git a/app/src/main/jni/Android.mk b/app/src/main/jni/Android.mk
index 1f576eb..c1c96d0 100644
--- a/app/src/main/jni/Android.mk
+++ b/app/src/main/jni/Android.mk
@@ -10,8 +10,8 @@
 include $(BUILD_SHARED_LIBRARY)
 
 # Explicitly define versions of precompiled modules
-$(call import-module,../packages/nfd/0.6.6)
-$(call import-module,../packages/ndn_cxx/0.6.6-1)
-$(call import-module,../packages/boost/1.70.0)
-$(call import-module,../packages/sqlite/3.18.0)
-$(call import-module,../packages/openssl/1.1.1-pre8)
+$(call import-module,../packages/nfd/0.7.0)
+$(call import-module,../packages/ndn_cxx/0.7.0)
+$(call import-module,../packages/boost/1.73.0)
+$(call import-module,../packages/sqlite/3.32.1)
+$(call import-module,../packages/openssl/1.1.1g)
diff --git a/app/src/main/jni/nfd-wrapper.cpp b/app/src/main/jni/nfd-wrapper.cpp
index 7b72430..f79d31d 100644
--- a/app/src/main/jni/nfd-wrapper.cpp
+++ b/app/src/main/jni/nfd-wrapper.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2015-2019 Regents of the University of California
+ * Copyright (c) 2015-2020 Regents of the University of California
  *
  * This file is part of NFD (Named Data Networking Forwarding Daemon) Android.
  * See AUTHORS.md for complete list of NFD Android authors and contributors.
@@ -92,7 +92,7 @@
             type any
           }
         }
-        localhop_security
+        prefix_announcement_validation
         {
           trust-anchor
           {
@@ -168,7 +168,6 @@
 };
 
 static unique_ptr<Runner> g_runner;
-static std::thread g_thread;
 static std::map<std::string, std::string> g_params;
 
 } // namespace nfd
@@ -225,7 +224,7 @@
     ::setenv("HOME", nfd::g_params["homePath"].c_str(), true);
     NFD_LOG_INFO("Use [" << nfd::g_params["homePath"] << "] as a security storage");
 
-    nfd::g_thread = std::thread([] {
+    auto thread = std::thread([] {
         nfd::resetGlobalIoService();
 
         NFD_LOG_INFO("Starting NFD...");
@@ -256,6 +255,7 @@
         nfd::resetGlobalIoService();
         NFD_LOG_INFO("NFD stopped");
       });
+    thread.detach();
   }
 }
 
diff --git a/app/src/main/play/listings/en-US/graphics/phone-screenshots/1174680317794011972.png b/app/src/main/play/listings/en-US/graphics/phone-screenshots/12007668794044348844.png
similarity index 100%
rename from app/src/main/play/listings/en-US/graphics/phone-screenshots/1174680317794011972.png
rename to app/src/main/play/listings/en-US/graphics/phone-screenshots/12007668794044348844.png
Binary files differ
diff --git a/app/src/main/play/listings/en-US/graphics/phone-screenshots/8610548870873111104.png b/app/src/main/play/listings/en-US/graphics/phone-screenshots/14995211209772951950.png
similarity index 100%
rename from app/src/main/play/listings/en-US/graphics/phone-screenshots/8610548870873111104.png
rename to app/src/main/play/listings/en-US/graphics/phone-screenshots/14995211209772951950.png
Binary files differ
diff --git a/app/src/main/play/listings/en-US/graphics/phone-screenshots/9314260737139509802.png b/app/src/main/play/listings/en-US/graphics/phone-screenshots/1606951598295458325.png
similarity index 100%
rename from app/src/main/play/listings/en-US/graphics/phone-screenshots/9314260737139509802.png
rename to app/src/main/play/listings/en-US/graphics/phone-screenshots/1606951598295458325.png
Binary files differ
diff --git a/app/src/main/play/listings/en-US/graphics/phone-screenshots/9314260737139509802.png b/app/src/main/play/listings/en-US/graphics/phone-screenshots/2797505759625413406.png
similarity index 100%
copy from app/src/main/play/listings/en-US/graphics/phone-screenshots/9314260737139509802.png
copy to app/src/main/play/listings/en-US/graphics/phone-screenshots/2797505759625413406.png
Binary files differ
diff --git a/app/src/main/play/listings/en-US/graphics/phone-screenshots/13088611630469511818.png b/app/src/main/play/listings/en-US/graphics/phone-screenshots/351647500174297761.png
similarity index 100%
rename from app/src/main/play/listings/en-US/graphics/phone-screenshots/13088611630469511818.png
rename to app/src/main/play/listings/en-US/graphics/phone-screenshots/351647500174297761.png
Binary files differ
diff --git a/app/src/main/play/listings/en-US/graphics/phone-screenshots/13088611630469511818.png b/app/src/main/play/listings/en-US/graphics/phone-screenshots/4728587754154587625.png
similarity index 100%
copy from app/src/main/play/listings/en-US/graphics/phone-screenshots/13088611630469511818.png
copy to app/src/main/play/listings/en-US/graphics/phone-screenshots/4728587754154587625.png
Binary files differ
diff --git a/app/src/main/play/listings/en-US/graphics/phone-screenshots/1174680317794011972.png b/app/src/main/play/listings/en-US/graphics/phone-screenshots/5330727830694217599.png
similarity index 100%
copy from app/src/main/play/listings/en-US/graphics/phone-screenshots/1174680317794011972.png
copy to app/src/main/play/listings/en-US/graphics/phone-screenshots/5330727830694217599.png
Binary files differ
diff --git a/app/src/main/play/listings/en-US/graphics/phone-screenshots/8610548870873111104.png b/app/src/main/play/listings/en-US/graphics/phone-screenshots/5462748549381729952.png
similarity index 100%
copy from app/src/main/play/listings/en-US/graphics/phone-screenshots/8610548870873111104.png
copy to app/src/main/play/listings/en-US/graphics/phone-screenshots/5462748549381729952.png
Binary files differ
diff --git a/app/src/main/play/release-notes/en-US/internal.txt b/app/src/main/play/release-notes/en-US/internal.txt
new file mode 100644
index 0000000..c0ab6ac
--- /dev/null
+++ b/app/src/main/play/release-notes/en-US/internal.txt
@@ -0,0 +1,3 @@
+- Add option to enable unsolicited data caching
+- Upgrade NFD/ndn-cxx to version 0.6.6
+- Switch to Boost 1.70.0
\ No newline at end of file
diff --git a/app/src/main/play/release-notes/en-US/production.txt b/app/src/main/play/release-notes/en-US/production.txt
index 21119db..7f1aead 100644
--- a/app/src/main/play/release-notes/en-US/production.txt
+++ b/app/src/main/play/release-notes/en-US/production.txt
@@ -1,5 +1 @@
-- A new bottom navigation menu
-- A new nicer style for the drawer navigation menu
-- Fix bug with ping unexpectedly starting after reopening app
-- Fix crash if pressing HOME key while ping client is running
-- Codebase transitioned to AndroidX framework
\ No newline at end of file
+NFD and ndn-cxx updated to version 0.7.0
\ No newline at end of file